集合
https://www.cnblogs.com/coderzjz/p/13587167.html
一般集合指的是实现了Collection接口的类。
对象的容器,实现了对对象进行操作的常用方法,可实现数组的功能
和数组的区别
1.数组长度固定,集合长度不固定
2.数组可存储基本数据类型和引用类型,集合只能引用类型
Collection根接口,代表一组对象,称为集合
List:有序、有下标、元素可重复
Set:无序、无下标、元素不能重复
范型
意思是允许在定义类、接口、方法时使用类型形参,当使用时指定具体类型所有使用该泛型参数的地方都被统一化,保证类型一致
不同范型之间引用不能相互赋值,范型不存在多态
参数化类型,把类型作为参数传递
泛型类
语法:类名
【T是类型占位符,表示一种引用类型,如果编写多个使用逗号隔开】
泛型接口
语法:接口名
不能泛型静态常量
泛型方法
语法:返回值类型
如:public void X(){}
【范型不能new…
Set子接口
无序、无下标、元素不能重复
Set实现类
HashSet的使用
存储结构:哈希表(数组+链表+红黑树)
存储过程:
1.根据hashcode计算保存的位置,如果此位置为空,则直接保存,如果不为空执行第二步
2.再执行equals方法,如果equals方法为true,则认为是重复,否则,形成链表
TreeSet
基于排列顺序实现元素不重复,实现了SortedSet接口,对集合元素自动排序,元素对象的类型必须实现Comparable接口,指定排序规则
存储结构:红黑树
要求:必须要实现Comparable接口,compareTo()方法值为0,认为是重复元素
Comparator:实现定制比较(比较器)
Comparable:可比较的
Map集合(接口
HashMap(类)
SortedMap(接口):TreeMap(类)
①用于存储任意键值对(Key-Value)
②键key:无序、无下标、不允许重复
③值value:无序、无下标、允许重复
Map接口的使用
特点:存储键值对、键不能重复值可以重复、无序
遍历:1.使用keySet();2.使用entrySet();
HashMap的使用
线程不安全、效率快、允许null作为key.value
存储结构:数组+链表+红黑树
使用key的hashcode和equals作为重复
遍历:1.使用keySet();2.使用entrySet();
Hashtable的使用
线程安全、效率慢、不允许nukl作为key.value
Properties:Hashtable的子类、要求key.value都是String,通常同于配置文件的读取
TreeMap的使用
存储结构:红黑树
Collections工具类
sort排序
copy复制
reverse反转
shuffle打乱
list(集合)转化为数组:toArray
数组转化为集合:asList
集合是一个受限集合,不能添加和删除