1. Java集合类框架提供了基本数据结构的实现,Collection是最基本的接口。
2. 在Set中,元素不会被插入到特定的位置,并且不允许重复的元素。SortedSet允许按顺序迭代,NavigableSet含有寻找元素邻居的方法。
3. 当你实现一个处理集合的方法时,使用限制最少的接口作为参数类型。通常Collection,List,Map就足够了。
4. remove方法移除了迭代器返回的最后一个一个元素,并不是迭代器指向的元素,在中间没有调用next或者previous时,不能连续两次调用remove方法。
5. 如果你用多个迭代器访问同一个数据结构,并且其中一个使数据结构发生改变,那么其他的迭代器可能会失效,一个无效的迭代器被访问的话,会抛出CocurrentModificationException。
6. HashSet和TreeSet都实现了Set接口,如果你为元素提供了很好的hash函数,则HashSet效率更高。Java类库中的String,Path都提供了很好的hash函数。如果你想按顺序便利集合,则可以使用TreeSet。
7. TreeSet实现了SortedSet和NavigableSet接口。
8. Map获取键值的方法中,getOrDefault比get方法的好处在于:处理值为null的拆箱时,不会导致NullPointerException
9. Map的merge方法简化了计数器累加的问题。
10. 通过keySet,values,entrySet方法可以获得Map中的键,值和记录的试图。
11. 迭代Map中所有记录,可以遍历entrySet返回的Set或者直接使用ForEach
12. 需要栈时,不要使用Java遗留的Stack类,应该使用ArrayDeque,push/pop对应栈操作,add/remove对应队列操作。