需求:20个学员,用Student描述,创建Student对象。
既然对象很多先进行存储—数组
Student[] stus =new Student[20];
需求2:又来了一个新学员。
原来的容器不能用,因为数组的长度是固定的。
解决:
可以创建一个新数组,将原来的数组中的元素复制到新数组中。
这种方法过于繁琐,于是Java中提供解决问题的对象—>集合。
当数据很多,需要存储时,需要容器,而数据的个数不能确定,无法使用数组,
这时可以使用Java中另一个容器–集合
集合和数组的区别?
数组的长度是固定的。
集合的长度是可变的。
数组中存储的是同一类型的元素,可以存储基本数据类型值
集合存储的都是对象,而且对象的类型可以不一致。
什么时候使用集合呢?
当对象多的时候,先进行存储。
JDK最早的1.0版本中提供得集合容器很少。
到了1.2版,为了更多的需求,出现了集合框架,有了更多的容器,完成不同的需求。
这些容器怎么区分?区别的方式:每一个容器的数据结构(即数据存储的方式)不一样。
不断的向上抽取过程中,出现体系,形成了集合框架。
最顶层:Collection接口。
学习体系:看顶层,用底层。
了解顶层Collection
一个容器:添加,删除
package collection;
import java.util.ArrayList;
import java.util.Collection;
public class CollectionDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
// Collection coll = new ArrayList();
// collectionDemo(coll);
Collection c1=new ArrayList();
Collection c2=new ArrayList();
collectionDemo2(c1, c2);
}
// 演示Collection中带all方法
public static void collectionDemo2(Collection c1,Collection c2){
//1,给两个集合添加元素
c1.add("abc1");
c1.add("abc2");
c1.add("abc3");
c2.add("abc1");
c2.add("abc5");
c2.add("abc6");
//添加C2所有元素到c1中。
c1.addAll(c2);
boolean b=c1.containsAll(c2);
System.out.println("b="+b);
//删除c1中所有和c2相同的元素
c1.removeAll(c2);
//保留了c1中所有和c2相同的元素
c1.retainAll(c2);
//打印
System.out.println("c1="+c1);
}
// 演示Collection中常见的一般方法
public static void collectionDemo(Collection coll) {
// 1,往集合中添加对象元素。 add(Object)
coll.add("itcast1");
coll.add("itcast2");
coll.add("itcast3");
//2,删除
coll.remove("itcast2");
//3,判断是否包含
System.out.println(coll.contains("itcast1"));
//4,清除
coll.clear();
//把集合打印一下
System.out.println(coll);
}
}