集合的由来:
我们学习的是面向对象的语言,而面向对象对事务的描述又是通过对象来进行体现,为了方便对多个对象进行操作。我
们就必须将这多个对象进行存储,而且想要存储多个对象,就不能是一个基本的数据类型,而应该是一个容器类型的变量,在我们目前所有学的知识里面,有哪些是容器类型?
数组和StringBuffer,但是呢?StringBuffer的结果程序是一个字符串类型,不一定能够满足我们的需求。所以我们只能
选择数组,这个就是对象数组。但是,对象数组又不能适应不断变化的需求,因为数组的长度是固定,为了适应我们不断变化的需求,Java提供了一个专门存储对象的容器给我们使用。
这个容器叫做:集合
数组和集合的区别?
a.长度区别
数组:长度固定
集合:长度可变
b.内容区别
数组:存储是同一种数据类型的元素
集合:可以存储不同类型的元素
c.元素的数据类型
数组:可以存储基本数据类型,也可以存储引用数据类型
集合:只能存储引用数据
刚才我说过集合是存储多个元素的,但是,存储的多个元素我们也可能有不同的需求,比如说,我要这多个元素中不能存在
相同元素,再比如说,我想要这些元素按照自然规则(或者某种规则)进行排序。针对不同的需求,Java就提供不同的集合类给我们使用。
这些集合类因为数据结构的不同,有的能够排序,有的不能够存储相同内容。这样就形成了一个继承体系,这种继承体系叫
做集合的继承
collection:是集合的顶层接口。他的子体系有重复的,有唯一的,也有无序的。(后面慢慢解释)
集合的遍历:
方式1:(for循环,一般不用)
Object[]objs = c.toArray();
for (int i = 0; i < objs.length; i++) {
System.out.println(objs[i]);
Student s = (Student)objs[i];
System.out.println(s.getName()+"----"+s.getAge());
}
方式2:
//创建迭代器,将集合里面的内容存入迭代器
Iterator it = c.iterator();
while (it.hasNext()) {//hasNext 判断是否有下一个元素,如果有元素返回true,否则返回false
//it.next(); 返回下一个元素的内容
Student s = (Student)it.next();
System.out.println(s.getName()+"----"+s.getAge());
}