集合
什么是集合?
集合:集合是java中提供的一种容器,可以用来存储多个数据。
集合和数组的区别
数组的长度是固定的。集合的长度是可变的。
数组中存储的是同一类型的元素,可以存储任意类型数据。集合存储的都是引用数据类型。如果想存储基本类型数据需要存储对应的包装类型。
Collection集合中重要的子接口分别时java.util.List
和java.util.Set
其中List的特点:元素有序、元素可重复
Set的特点:
不可重复
List的常用子类:java.util.ArrayList
和java.util.LinkedList
ArrayList继承List所以ArrayList也具有元素有序和元素可重复的特点。
ArrayList中的一些常用方法的示例:
public class Test {
public static void main(String[] args) {
//创建一个数组集合对象
ArrayList arrayList = new ArrayList();
//添加元素方法
arrayList.add("啊这");
arrayList.add("啊这");
arrayList.add("啊这");
arrayList.add("啊这1");
arrayList.add("啊这2");
arrayList.add("啊这3");
arrayList.add("啊这4");
//判断元素个数的方法
int size = arrayList.size();
System.out.println(size);
//删除元素的方法
boolean b = arrayList.remove("啊这");
System.out.println(b);
//判断是否包含指定的元素
boolean contains = arrayList.contains("啊这");
System.out.println(contains);//true
//删除指定所有元素
ArrayList<String> arrayList1 = new ArrayList<>();
arrayList1.add("啊这");
arrayList.removeAll(arrayList1);
boolean contains1 = arrayList.contains("啊这");
System.out.println(contains1);//false
//System.out.println("==============================");
//清空集合所有元素
arrayList.clear();
System.out.println(arrayList.size());
}
}
结果:
迭代器
什么是迭代器
迭代器就是一个接口Iterator,实现了该接口的类就叫做可迭代类,这些类多数时候指的就是java.util包下的集合类。
迭代器的作用:
由Java提供的用来遍历集合中的所有元素。
获取迭代器:
集合提供了方法可以直接获取迭代器。
Iterator<E> iterator()
可以通过调用集合中的方法来获取一个迭代器
Iterator iter = 集合.iterator();
得到迭代器之后就可以使用迭代器中的hasNext()方法和next()遍历集合
示例:
public class Test2 {
public static void main(String[] args) {
ArrayList arrayList = new ArrayList();
//添加元素
arrayList.add("111");
arrayList.add("222");
arrayList.add("333");
arrayList.add("444");
Iterator iterator = arrayList.iterator();
while (iterator.hasNext()) {
iterator.next();
}
}
}
出来通过迭代器之外还可以通过普通for和增强for来遍历集合
示例:
public class Test2 {
public static void main(String[] args) {
ArrayList arrayList = new ArrayList();
//添加元素
arrayList.add("111");
arrayList.add("222");
arrayList.add("333");
arrayList.add("444");
//普通for
for (int i = 0; i < arrayList.size(); i++) {
System.out.println(arrayList.get(i));
}
//增强for
for (Object o : arrayList) {
System.out.println(o);
}
}
}
其中在使用迭代器遍历集合的时候是不允许使用集合中的方法对集合进行增删操作的,这时候需要使用迭代器中remove()方法对集合进行删除操作。