集合的由来
数组长度是固定,如果要改变数组的长度需要创建新的数组将旧数组里面的元素拷贝过去,使用起来不方便。
java给开发者提供了-些集合类,能够存储任意长度的对象,长度可以随着元素的增加而增加随着元素的减少而减少,使用起来方便- -些。
集合继承体系图
java提供了一-些集合类,这些集合类分别适用于不同的场景,下面是常用的一-些集合基础体系图。

里面的Collection是接口,下面的List、Set、 Queue也都是接口,并且继承了这个Collection。最下面的ArrayList、LinkedList、 Vector、 HashSet、 TreeSet、 PriorityQueue都是他们的实现类。
集合类的一些特点
List:里面存放的数据是有顺序的,可以存放重复的数据。
Set:里面存放的数据是没有顺序的,不能存放重复的数据。
Queue:是- -个队列,里面的数据是先进先出,可以存放重复的数据。
数组和集合的区别
区别1:
■数组既可以存储基本数据类型又可以存储引用数据类型基本数据类型存储的是值引用数据类型存储的是地址值
■集合只能存储引用数据类型(对象),如果存储基本数据类型时,会自动装箱变成相应的包装类
■区别2:
■数组长度是固定的,不能自动增长
■集合的长度的是可变的,可以根据元素的增加而自动增长

public class Col lectionTest01 {
public static void main (String[] args) {
Collection C = new ArrayList() ;
c.add("a") ;
c.add("b") ;
c.add("C") ;
c.add("d") ;
/ /获取集合的大小
System. out.println(c.size()) ;
System. out.println(c) ; / /在ArrayList的爷爷类AbstractCollection中重写的tostring方法
C.remove ("b") ;
/ /System. out.println(c) ;
//将集合转换为数组,然后进行遍历
object[] 0 = C. toArray() ;
for (int i=0; i<o. length; i++) {
System. out. println(o[i]) ;
}
/ /清空集合里面的元素
c.clear() ;
/ /System. out.println(C) ;
//判断集合中是否包含传入的元素
System. out. println (C. contains ("b")) ;
//判断集合里面是否有元素
Sys tem. out. println (C. isEmpty());
}
}