Map 双列集合、键不可重复、值可重复
HashMap 数组+链表+红黑树
LinkedHashMap HashMap + 链表
HashTable HashMap + 同步
HashMap vs HashTable
异步 --- 同步
key/value 可以为null --- key&value 不能为null
数据结构:
栈
先进后出
队列
先进先出
链表
增删快、查找慢
数组
查找慢、增删慢
红黑树
查找快
List ArrayList LinkedList Vector
Set HashSet LinkedHashSet TreeSet
哈希表实现
JDK 1.8 之前:数组+链表
JDK 1.8 之后:数组+链表+红黑树
HashSet 添加元素
先调用 hashCode 确定 元素位置
如果 hashCode 相同,再调用 equals 方法判断
两个元素是否相等,如相等,则插入失败;否则,插入成功
Collections
可变参数
addAll(Collection c,Object ... objs)
shuffle(List list)
sort(List list)
sort(List list,Comparator t)
//如果存储的元素实现了 Comparable 借口,而且使用了 Comparator 比较器
//那么,将使用 Comparator 比较器
Collection
List 有序、元素可重复、有索引
ArrayList 基于数组
LinkedList 基于链表
Vector 基于数组(同步)
Set 不保证有序、元素可不重复、无索引
Iteracter:迭代器
<T>:引用类型占位符、类型检查
Object
toString\equals
Date
SimpleDateFormat yyyy-MM-dd HH:mm:ss
parse\format
String -> Date \ Date -> String
Calendar
month // 从0开始
week // 从1开始
System
当前系统时间对应的毫秒值
数组拷贝
StringBuilder
包装类
Character\Integer
自动装箱、自动拆箱
|
|