Collection接口
- 概述:单列集合的顶级接口
- 格式:其中泛型决定了集合中能存储什么类型的数据,可以统一元素类型,泛型中只能写引用数据类型,如果不写,默认Object类型。等号前面的泛型必须写,等号后面的泛型可以不写,jvm会根据前面的泛型推导出后面的泛型是啥。
Collection<E> 对象名 = new 实现类对象<E>()
常用方法
- boolean add(E e) :将给定的元素添加到当前集合中(我们一般调add时,不用boolean接收,因为add一定会成功)
- boolean addAll(Collection<? extends E> c) :将另一个集合元素添加到当前集合中 (集合合并)
public class MyCollection {
public static void main(String[] args) {
Collection<Integer> collection = new ArrayList<>();
collection.add(1);
collection.add(2);
System.out.println(collection);
System.out.println("======================================");
//boolean addAll(Collection<? extends E> c) :将另一个集合元素添加到当前集合中 (集合合并)
Collection<Integer> collection1 = new ArrayList<>();
collection1.add(3);
collection1.add(4);
collection1.addAll(collection);
System.out.println(collection1);
}
}
- void clear():清除集合中所有的元素
- boolean isEmpty() : 判断当前集合中是否有元素->判断集合是否为空
public static void main(String[] args) {
Collection<Integer> collection = new ArrayList<>();
collection.add(1);
collection.add(2);
System.out.println(collection);
collection.clear();
System.out.println("==================================");
System.out.println(collection);
System.out.println("==================================");
System.out.println(collection.isEmpty());
}
}
- boolean remove(Object o):将指定的元素从集合中删除
- int size():返回集合中的元素个数。
- Object[] toArray(): 把集合中的元素,存储到数组中
public class MyCollection {
public static void main(String[] args) {
Collection<Integer> collection = new ArrayList<>();
collection.add(1);
collection.add(2);
System.out.println(collection);
boolean result = collection.contains(3);
System.out.println("result = " + result);
System.out.println(collection.size());
Object[] arr = collection.toArray();
System.out.println(Arrays.toString(arr));
Iterator接口
Iterator接口与Collection接口不同,主要用于迭代访问Collection中的元素,因此Iterator对象也被称为迭代器。通过Collection接口中的iterotor()返回的迭代器的实现对象。
迭代器常用方法
- boolean hasNext():判断集合中有没有下一个元素
- E next():获取下一个元素
public class MyIterator {
public static void main(String[] args) {
ArrayList<Integer> test = new ArrayList<>();
test.add(3);
Iterator<Integer> iterator = test.iterator();//获取迭代器对象
while(iterator.hasNext()){
Integer element = iterator.next();
System.out.println(element);
}
}
}
增强for循环
增强for循环用来遍历数组或者集合。
格式:
for(元素类型 变量名:要遍历的集合名或者数组名){
变量名就是代表的每一个元素
}
IDEA快捷键:集合名或者数组名.for
遍历集合
public class Test {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("张三");
list.add("李四");
list.add("王五");
for (String i : list) {
System.out.println(i);
}
}
}
遍历数组
public class Test {
public static void main(String[] args) {
int[] arr = {1,2,3};
for (int i : arr) {
System.out.println(i);
}
}
}
注意:增强for循环遍历集合时,底层实现原理为迭代器,不能随意修改集合长度,否则会出现并发修改异常。增强for循环遍历数组时,底层实现原理为普通for循环。