集合的一些技巧:
需要唯一吗?
需要唯一:Set
需要制定顺序:
需要: TreeSet
不需要:HashSet
但是想要一个和存储一致的顺序(有序):LinkedHashSet
不需要唯一:List
需要频繁增删吗?
需要:LinkedList (增删速度快)
不需要:ArrayList (查询速度快)
如何记录每一个容器的结构和所属体系呢?
看名字!
List
|--ArrayList (数组数据结构)
|--LinkedList (链表数据结构)
Set
|--HashSet (哈希表数据结构)
|--TreeSet (二叉树数据结构)
后缀名就是该集合所属的体系。
前缀名就是该集合的数据结构。
看到array:就要想到数组,就要想到查询快,有角标.
看到link:就要想到链表,就要想到增删快,就要想要 add get remove+frist last的方法,增删改查
看到hash:就要想到哈希表,就要想到唯一性,就要想到元素需要覆盖hashcode方法和equals方法。
看到tree:就要想到二叉树,就要想要排序,就要想到两个接口Comparable,Comparator 。
而且通常这些常用的集合容器都是不同步的。