集合进阶
集合体系结构
红色部分是接口,蓝色部分是实现类对象
以Collecion为代表的是单列集合,以Map为代表的是双列集合
再对Collection进行分类为List和Set两个系列,他们的特点都在图里哦
Collection的基本方法
import java.util.ArrayList;
import java.util.Collection;
public class test{
public static void main(String[] args) {
Collection<Student> coll = new ArrayList<>();
Student stu1 = new Student("wlc", 18);
Student stu2 = new Student("wlc", 18);
coll.add(stu1); coll.add(stu2);
Student stu3 = new Student("wlc", 18);
System.out.println(coll.contains(stu3));
}
}
在Student类里边要对equals方法进行重写,不然会默认调用Object类里面的地址比较法
Collection的遍历方法
细节一:迭代器已经到最后的位置了,后面已经没有元素给你遍历了,所以会报错哦
细节二:迭代器遍历用完后会呆在最后面,要重头开始的话就要再建立一个新的迭代器,原来那个就会被Java默默清理掉啦
细节三:如果在循环里面写两个的话,那判断一次就让指针往下走两步,可能会出现空内容异常哦
细节四:如果要在遍历过程中处理的话,就可以调用迭代器本身的remove方法,但是迭代器没有添加内容的方法哦,在遍历以外的部分对这个集合添加和删除就可以用集合的remove和add方法啦
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class test{
public static void main(String[] args) {
Collection<String> coll = new ArrayList<>();
coll.add("aaa");
coll.add("bbb");
coll.add("ccc");
// 创建指针
Iterator<String> it = coll.iterator();
// 条件是判断是否有元素
while(it.hasNext()){
// 利用迭代器获得元素
String str = it.next();
System.out.println(str);
}
}
}