1. colection接口介绍
collection接口是单列集合的顶级接口,其子类接口有List、Set、Queue,在这个接口中的所有方法,在所有的实现类中都存在。
2. 常用方法
// 1. 实例化Collection实现类的对象,并且向上转型到Collection类型
Collection<Integer> collection = new ArrayList<>();
// 2. 向集合末尾添加一个元素
collection.add(10);
collection.add(20);
collection.add(30);
// 4. 删: 从集合中删除指定的元素(只会删除从前往后第一个匹配到的元素)
collection.remove(1);
// 6. 删: 按照条件删除元素
// 逻辑: 依次将集合中的每一个元素,带入到实参的方法中,进行条件匹配。
// 如果返回值是true,就删除这个元素。
collection.removeIf(ele -> ele > 10);
// 8. 删: 清空集合
collection.clear();
// 9. 判断集合中是否包含某一个元素
System.out.println(collection.contains(1));
// 11. 返回集合中元素的数量,类似于 array.length
System.out.println(collection.size());
// 12. 判断一个集合是否是一个空集合(0个元素、size() == 0)
System.out.println(collection.isEmpty());
// 13. 将集合转成数组
Object[] arr1 = collection.toArray();
// 14. 将集合转成指定类型的数组
Integer[] integers = collection.toArray(new Integer[0]);
// 3. 向集合中批量添加元素(将参数集合中的元素,依次添加到指定的集合中)
Collection<Integer> tmp = new ArrayList<>();
tmp.add(1);
tmp.add(2);
tmp.add(3);
collection.addAll(tmp);
// 5. 删: 删除collection集合中,所有的在参数集合中存在的元素
collection.removeAll(tmp);
// 7. 【可选】删: 保留集合中,在参数集合中存在的元素
collection.retainAll(tmp);
// 10. 判断参数集合中,所有的元素,是否都在指定的集合中包含
System.out.println(collection.containsAll(tmp));
3. 排序
- 注意:对象名.forEach()
// 1. 使用增强for循环进行遍历
// 在使用增强for循环遍历集合的时候,不允许对集合进行任何改动
private static void method1(Collection<Integer> collection) {
for (Integer integer : collection) {
System.out.println(integer);
}
}
// 2. Java8之后出现的方法: forEach
// forEach(Consumer<T> comsumer)
// 将集合中的元素,依次带入comsumer接口的accept方法中,作为参数
private static void method2(Collection<Integer> collection) {
// collection.forEach(ele -> System.out.println(ele));
collection.forEach(System.out::println);
}
// 3. 使用迭代器进行遍历
// hasNext() : 判断迭代过程中,是否还有下一个元素可以迭代
// next() : 向后指向一个元素,并返回当前指向的元素
private static void method3(Collection<Integer> collection) {
// 1. 获取一个用来迭代当前集合的一个迭代器对象
Iterator<Integer> iterator = collection.iterator();
// 2. 判断是否还有写一个元素可以迭代
while (iterator.hasNext()) {
Integer element = iterator.next();
System.out.println(element);
}
}