1.集合与数组的区别
区别1 :
*数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值
*集合只能存储引用数据类型(对象)集合中也可以存储基本数据类型,但是在存储的时候会自动装箱变成对象
区别2:
* 数组长度是固定的,不能自动增长
* 集合的长度的是可变的,可以根据元素的增加而增长
2.集合继承体系图
3.Collection集合的基本功能
boolean add(E e)——添加元素
boolean remove(Objecto)——删除指定元素
void clear()——清空集合
booleancontains(Object o)——判断是否包含
booleanisEmpty()——判断是否为空
int size()——获取元素的个数
4.集合的遍历
public class Collection_Demo {
// 集合的遍历
public static void main(String[] args) {
demo1();
}
private static void demo1() {
Collection c = new ArrayList();
c.add("a");
c.add("b");
c.add("c");
c.add("d");
Object[] arr = c.toArray();// 将集合转换成数组
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
5. Collection集合的带All功能
booleanaddAll(Collection c)
boolean removeAll(Collection c) //删除交集
boolean containsAll(Collection c)
boolean retainAll(Collection c) //取交集
6.集合遍历之迭代器遍历
Collection c = new ArrayList();
c.add("a");
c.add("b");
c.add("c");
c.add("d");
Iterator it = c.iterator(); //获取迭代器的引用
while(it.hasNext()) { //集合中的迭代方法(遍历)
System.out.println(it.next());
}
7. Collection存储自定义对象并用迭代器遍历
Collection c = new ArrayList();
c.add(new Student("张三",23));
c.add(new Student("李四",24));
c.add(new Student("王五",25));
c.add(new Student("赵六",26));
c.add(new Student("赵六",26));
for(Iterator it = c.iterator();it.hasNext();) {
Student s = (Student)it.next(); //向下转型
System.out.println(s.getName() + "," + s.getAge()); //获取对象中的姓名和年龄
}
System.out.println("------------------------------");
Iterator it = c.iterator(); //获取迭代器
while(it.hasNext()) { //判断集合中是否有元素
//System.out.println(((Student)(it.next())).getName() + "," + ((Student)(it.next())).getAge());
Student s = (Student)it.next(); //向下转型
System.out.println(s.getName() + "," + s.getAge()); //获取对象中的姓名和年龄
}
8. Collection中定义了集合框架的共性功能
1,添加 add(e); addAll(collection);
2,删除 remove(e); removeAll(collection); clear();
3,判断。contains(e); isEmpty();
4,获取 iterator(); size();
5,获取交集。retainAll();
6,集合变数组。 toArray();
注意:
1, add方法的参数类型是Object。以便于接收任意类型对象
2, 集合中存储的都是对象的引用(地址)
3, 什么是迭代器?
其实就是集合的取出元素的方式。如同抓娃娃游戏机中的夹子。
迭代器是取出方式,会直接访问集合中的元素。所以将迭代器通过内部类的形式来进行描述。
通过容器的iterator()方法获取该内部类的对象。