Java 集合框架概述
1、集合和数组的区别
共同点:集合和数组都是用来存储多个数据的容器
数组
数组一旦初始化之后长度不能改变
数组存储的元素数据类型必须一致,要么是基本数据类型,要么是引用数据类型
数据的缺点:数组操作数据非常麻烦,没有提供管理(针对数据的增删改查)数据的方法,比如增加数据还要考虑扩容的问题
//数组存储基本数据类型
int[] number ={1,2,3};
//数组存储引用数据类型
Cellphpne[] cellphpnes = {new Cellphpne("iphone12")};
集合
集合的长度可以动态变化
集合存储的数据类型只能是对象,如果你存储了基本数据类型,那么会自动装箱成基本数据类型对应的包装类
集合可以存储任意的数据类型,在没有使用泛型的前提下,但是使用集合都是会使用泛型集合
集合的优点:集合操作数据非常方便,JDK的开发人员针对集合操作数据提供了丰富的API,业务系统开发人员只需要掌握API的使用即可,高级程序员就要了解集合的底层实现(数据结构+算法)
Collection collection = new ArrayList();
collection.add(1);
collection.add("tony");
collection.add(3.14);
collection.add(true);
collection.add(new Cellphpne("iphone12"));
由于数组长度固定,没有提供管理数据的方法,因此在日常开发中,如果要使用容器,99.99%考虑使用集合的API。
2、集合框架体系结构
集合框架体系结构也就是要搞清楚集合的常用接口,类以及类中提供方法的使用,底层源码的实现。
集合的分类可以分为单列集合和双列集合两大类
单列集合的使用
//单列集合 添加的是对象
Collection collection = new ArrayList();
collection.add(1);
collection.add("tony");
collection.add(3.14);
collection.add(true);
collection.add(new Cellphpne("iphone12"));
双列集合的使用
//双列集合,添加的都是key-value键值对形式的对象
Map<String,String> map = new HashMap<>();
map.put("姓名","tony");
map.put("年龄","19");
单列集合体系结构
单列结合的顶层接口是java,util.Collection,Collection下有两个子接口:List和Set
- List
- ArrayList
- LinkedList
- java.util.concurrent.CopyOnWriteArrayList 并发
- Set
- HashSet
- TreeSet
- LinkedHashSet
- java.util.concurrent.CopyOnWriteArraySet 并发
双列集合体系结构
java.util.Map接口是双列集合的顶层接口,Map接口下常用的实现类
- HashMap
- TreeMap
- LinkedMap
- ConcurrentHashMap
- Properties
集合工具
- Iterator
- ListIterator
- Collections