一、HashMap
1.简介
特点:
数据结构基于哈希表
允许使用null值和null键
此实现不同步,在多线程中不安全
默认容量是16
2.Has和Map和HashSet比较
相同点:都是以hash表结构来进行存储
不同点:
HashMap数据结构只针对键
HashSet底层也是使用HashMap来进行存储 只能用于HashMap数据结构
二、LinkedHashMap
简介
和LinkedHashSet类似
Map接口的哈希表和链接列表实现 数据结构 hash表结构和链表进行存储
有序 可预知的迭代顺序
此实现不是同步的 多线程中不安全
三、泛型
1.简介
1.使用场景:不确定数据类型,定义集合时使用泛型
2.在实例化对象时可以确定其数据类型
List<数据类型> li=new ArrayList<数据类型>();
jdk1.7之后出现了菱形的泛型 后面的泛型数据类型可以不写
泛型只能使用引用数据类型
3.好处:
避免进行强制类型转换
将运行时错误提前到编译时
4.泛型符号:任意的大写符号
2. 定义泛型类
语法:
访问修饰符 class 类名<泛型>{
类中所有的成员都可以使用泛型
}
public class MyList<E>{
}
3.定义泛型方法
1.语法:
访问修饰符 <泛型> 返回值类型 方法的名称(参数列表){
方法体
return 返回值;
}
2.说明:可以给普通方法加泛型 也可以给静态方法加泛型
3.普通的成员方法可以使用类的泛型,而静态方法不能
4.定义泛型接口
5.泛型通配符
1.简介
泛型通配符可以表示为任意的数据类型 ,泛型通配符号使用?来表示
泛型通配符一般作为方法参数使用
例如:public static void show(List<?> li)
实例化集合对象不可以使用泛型通配符 泛型没有继承的概念
2.特殊的通配符
<? extends E> E本身或者其子类
<? super T> T本身或者其父类
四、Collections
五、总结