一.Collections
1.概述
集合工具类
2.特点
a.构造私有
b.方法都是静态
3.使用
类名直接调用
4.方法
boolean addAll(Collection c,T...elements):批量添加元素
void shuffle(List list):将集合中的元素打乱
void sort(List list):将集合中的元素进行排序:ASCII
void sort(List list,Comparator c):将集合中的元素按照指定的规则排序
5.扩展方法
Arrays类中的方法
List asList(T...a):将元素直接放到集合中
二.泛型
1.使用层面
同一类型,防止类型转换异常
2.定义层面
定义带有泛型的类,方法,接口,将来使用的时候给泛型确定什么类型,泛型就是什么类型,灵活,通用
3.含有泛型的类
a.格式
public class 类名<E>{}
b.啥时候确定类型
new对象的时候确定类型
4.含有泛型的方法
a.格式
修饰符 <E> 返回值类型 方法名(E e){}
b.啥时候确定类型
调用的时候确定类型
5.含有泛型的接口
a.格式
public interface 接口名<E>{}
b.啥时候确定类型
在实现类的时候不确定类型,只能在new的时候确定类型
在实现类的时候就确定类型
6.泛型通配符
上限
a.格式:<? extends 类型>
b.含义:?接收的泛型类型只能是extends后面的本类类型以及子类类型
下限
a.格式:<? super 类型>
b.含义:?接收的泛型类型只能是super后面的本类类型以及父类类型
三.Set集合
HashSet
1.特点
a.元素唯一
b.元素无序
c.无索引
d.线程不安全
2.数据结构
哈希表
a.jdk8之前:哈希表=数组+链表
a.jdk8之后:哈希表=数组+链表+红黑树
方法:和Collection一样
4.遍历
a.增强for
b.迭代器
LinkedHashSet
1.特点
a.元素唯一
b.元素有序
c.无索引
d.线程不安全
2.数据结构
哈希表+双向链表
方法:和Collection一样
3.使用:和HashSet一样
set集合如何去重复
1.元素需要重写hashCode和equals方法\
2.先计算元素哈希值比较,如果哈希值不一样,存
3.如果哈希值一样,再比较内容
哈希值一样,内容不一样,存
哈希值一样,内容一样,去重复