集合和数组都是容器
数组的特点●数组定义完成并启动后,类型确定、长度固定。
●在进行增删数据操作的时候,数组是不太合适的,增删数据都需要放弃原有数组或者移位。
数组适合的场景●当业务数据的个数是固定的,且都是同一批数据类型的时候,可以采取定义数组存储。
举例:存储四种花色
//定义数组存储花色:类型确定,个数确定选用数组存储。
String[] colors={"❤","♣","♠","◆"};
集合的特点
集合是Java中存储对象数据的一种容器。
●集合的大小不固定,启动后可以动态变化,类型也可以选择不固定。集合更像气球。
●集合非常适合做元素的增删操作。
●注意:集合中只能存储引用类型数据,如果要存储基本类型数据可以选用包装类。
●数据的个数不确定,需要进行增删元素的时候。
二、Collection集合的体系特点 (1)集合类体系结构
●Collection单列集合:每个元素(数据)只包含一个值。
●Map双列集合:每个元素包含两个值(键值对)。
●注意:前期先掌握Collection集合体系的使用。
(2)Collection集合特点●List系列集合: 添加的元素是有序、可重复、有索引。
◆ArrayList、 LinekdList :有序、可重复、有索引。
●Set系列集合:添加的元素是无序、不重复、无索引。
◆HashSet: 无序、不重复、无索引; LinkedHashSet: 有序、不重复、无索引。
◆TreeSet: 按照大小默认升序排序、不重复、无索引。
//有序,可重复,有索引
Collection list = new ArrayList();
list.add("JAVA");
list.add("JAVA");
list.add("JAVA");
list.add(23);
list.add("Maybe");
list.add(23);
list.add(true);
list.add(true);
System.out.println(list);//[JAVA, JAVA, JAVA, 23, Maybe, 23, true, true]
System.out.println("--------------------------");
//无序,不重复,无索引
Collection list1 = new HashSet();
list1.add("JAVA");
list1.add("JAVA");
list1.add("JAVA");
list1.add(23);
list1.add("Maybe");
list1.add(23);
list1.add(true);
list1.add(true);
System.out.println(list1);//[JAVA, Maybe, 23, true]
(3)集合对于泛型的支持
●集合都是支持泛型的,可以在编译阶段约束集合只能操作某种数据类型
Collectionlists = new ArrayList (); Collection lists = new ArrayList<>(); // JDK 1. 7开始后面的泛型类型申明可以省略不写
注意:集合和泛型都只能支持引用数据类型,不支持基本数据类型,所以集合中存储的元素都认为是对象。
Collectionlists = new ArrayList<>();//错误
如果集合中要存储基本类型的数据怎么办?
//存储基本类型使用包装类 Collectionlists = new ArrayList<>(); Collection lists = new ArrayList<>();
//集合和泛型不支持基本数据类型,只能支持引用数据类型
//Collection list3 = new ArrayList<>();//报错
Collection list3 = new ArrayList<>();
list3.add(23);
Collection list4 = new ArrayList<>();
list4.add(23.0);
三、总结
(1)集合的代表是?
●Collection接口 。
(2)Collection集合分了哪2大常用的集合体系?●List系列集合:添加的元素是有序、可重复、有索引。
●Set系列集合:添加的元素是无序、不重复、无索引。
(3)如何约定集合存储数据的类型,需要注意什么?●集合支持泛型。
●集合和泛型不支持基本类型,只支持引用数据类型。



