collection集合学习
Conlection
1.add方法表示添加元素方法
2.size方法表示集合中已有元素的个数
3.isEmpty方法判断集合是否为空集,为空返回true,否则返回false
4.clear方法清空当前集合
5.contains(E e)用集合的equals方法判断元素e元素是否在集合里,有就返回true,否则返回false;
没有重写的equals是使用的“==”比较,重写equals方法
public boolean equals(Object obj){
if(obj==null){
return false;
}
if(obj==this){
return true;
}
if(obj instanceof Point){
Point p =(Point)obj;
return p;
}
return false;
}
6.toString方法回将每个元素的toString体现出来
7.集合只能存放引用类型元素,并且存放的也是元素的引用(地址),八大基本类型要转成包装类。
当集合中引用所指的对象的属性发生改变时,集合中存放的元素也会发生改变,因为集合中存的是地址,是根据地址去找对象的。
8.remove删除元素,根据重写equals比较,看是否有该元素存在,存在就删除,返回true,不存在就删除失败返回false,只删一个元素。
9.addAll(Conllection c) 并集,要求将另一个集合的全部元素,添加到使用该方法的集合对象上面去。并不要求这两个集合对象是同类型。会因集合对象的不同,addAll方法的操作也不相同。
当HashSet集合对象(无序,唯一)调用addAll方法时,里面的值都只会出现一次,如果从addAll()方法的参数对象中有元素已经存在HashSet集合对象中,就不会将该元素添加到HashSet对象中。如果是ArrayList集合对象(有序,不唯一),则会将addAll方法参数对象的所有元素添加到ArrayList集合对象里。
10.ContainsAll() c2.containsAll(c3)集合对象c3是否是c2的真子集,是则返回true,否则返回false
11.removeAll()删交集,保留除交集以外,自己剩余的元素
12.遍历集合元素:iterator迭代器,迭代器接口都定义了一个关于遍历集合元素的操作方法,每个集合都实现了迭代器实现类。
Iterator it = c.iterator();
while(it.hasNext()){
String o = (String) it.next(); //取之前要用instance of判断是否是String类型,不是则类型转换
}
在使用迭代器遍历的过程中,不允许用集合的方式进行增、删、改操作,否则会抛异常,因为迭代器会发现集合发生了改变,就会抛异常,可以使用 it.remove()删除元素
13.JDK5推出了一个新特性 增强for循环 ,称为“新循环",
新循环遍历数组是编译器能识别的,但虚拟机不能,所以在编译器会将新循环转为传统的for循环遍历数组的方式,所以虚拟机能识别到。
新循环遍历集合时,编译器会将新循环转为迭代器遍历集合的方式,所以在遍历过程中不能使用集合的增删操作,否则会抛出异常报错。
14.泛型
允许将一个类中属性的类型,方法参数的类型以及方法返回值类型等定义权移交给使用者。这使得实际应用中使用这个类更加灵活便捷。
子接口
List:元素可重复,有序,可以通过下标操作元素。
set:不可重复,无序,通过元素自身的equals方法来比较。

浙公网安备 33010602011771号