集合的由来
面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,Java就提供了集合类。
集合和数组的区别
长度区别:数组的长度是固定的而集合的长度是可变的
存储数据类型的区别:数组可以存储基本数据类型 , 也可以存储引用数据类型; 而集合只能存储引用数据类型
内容区别:数组只能存储同种数据类型的元素 ,集合可以存储不同类型的元素
集合框架
Collection功能
a:添加功能
boolean add(Object obj):添加一个元素
boolean addAll(Collection c):添加一个集合的元素 (给一个集合添加进另一个集合中的所有元素)
b:删除功能
void clear():移除所有元素
boolean remove(Object o):移除一个元素
boolean removeAll(Collection c):移除一个集合的元素(移除一个以上返回的就是true) 删除的元素是两个集合的交集元素
如果没有交集元素 则删除失败 返回false
c:判断功能
boolean contains(Object o):判断集合中是否包含指定的元素
boolean containsAll(Collection c):判断集合中是否包含指定的集合元素(这个集合 包含 另一个集合中所有的元素才算包含 才返回true)
比如:1,2,3 containsAll 12=true 1,2,3 containsAll 2,3,4=false
boolean isEmpty():判断集合是否为空
d:获取功能
Iterator iterator()(重点)
e:长度功能
int size():元素的个数
举例说明
1.添加元素。
coll.add(”abc1”);
coll.add(”abc2”);
coll.add(”abc3”);
2.删除
coll.remove(”abc2”);//移除和添加元素 –> 会改变集合的长度 –> 集合里面实际上存的是对象们的引用
3.清除。
coll.clear();
4.判断包含。
System.out.println(”contains: ”+coll.contains(“abc1”));//底层实现判断用的是equals()
5.创建两个容器。
Collection c1 = new ArrayList();
Collection c2 = new ArrayList();
c1.addAll(c2); //将c2添加到c1
判断c1中是否包含c2中的所有元素。
boolean b = c1.containsAll(c2);
System.out.println(”b = ”+b);
从c1中删除c2。将c1中和c2相同的元素从c1中删除。
c1.removeAll(c2);
将c1中和c2不同的元素从c1中删除。保留c1中和c2相同的元素。
c1.retainAll(c2);