目录
集合
一、集合与数组
数组的特点:数组定义完成并启动后,类型确定、长度固定。
因此,在进行增删操作的时候,数组是不太合适的,可能需要放弃原有数组或者移位
弊端:
- 不适合元素的个数和类型不确定的业务场景
- 不适合做需要增删数据操作
- 数组的功能也比较的单一,处理数据的能力并不是很强大
因此,引入了集合。
集合是java中存储对象数据的一种容器
集合的特点:集合的大小不固定,启动后可以动态变化,类型也可以选择不固定。
优势:
- 集合非常适合元素个数不能确定,且需要做元素的增删操作的场景。
- 同时,集合提供的种类特别的丰富,功能也是非常强大的,开发中集合用的更多。
总结:
- 数组和集合的元素存储的个数问题。
- 数组定义后类型确定,长度固定
- 集合类型可以不固定,大小是可变的。
- 数组和集合存储元素的类型问题。
- 数组可以存储基本类型和引用类型的数据。
- 集合只能存储引用数据类型的数据。
- 数组和集合适合的场景
- 数组适合做数据个数和类型确定的场景。
- 集合适合做数据个数不确定,且要做增删元素的场景,集合种类更多,功能更强大。
二、集合类体系结构
集合:
- Collection单列集合,每个元素(数据)只包含一个值。
- Map双列集合,每个元素包含两个值(键值对)。
Collection集合特点
- List系列集合:添加的元素是有序、可重复、有索引。
- ArrayList、LinekdList :有序、可重复、有索引。
- Set系列集合:添加的元素是无序、不重复、无索引。
- HashSet: 无序、不重复、无索引
- LinkedHashSet: 有序、不重复、无索引。
- TreeSet:按照大小默认升序排序、不重复、无索引。
public class CollectionDemo1 {
public static void main(String[] args) {
//有序 可重复 有索引
Collection list=new ArrayList<>();
list.add("Java");
list.add("Java");
list.add("Mybatis");
list.add(12);
list.add(12);
list.add(false);
list.add(false);
System.out.println(list);//[Java, Java, Mybatis, 12, 12, false, false]
//无序 不重复 无索引
Collection list1=new HashSet();
list1.add("Java");
list1.add("Java");
list1.add("Mybatis");
list1.add(12);
list1.add(12);
list1.add(false);
list1.add(false);
System.out.println(list1);//[Java, false, 12, Mybatis]
}
}
三、泛型(约定集合存储数据类型)
集合都是泛型的形式,可以在编译阶段约束集合只能操作某种数据类型