HashMap是无序的(是针对往map里面put值的顺序而言),但是如果key值是long或者intger时,他会按照key值从小到大的顺序排列,并且key值一样时,value值会被替换
linkedhashmap,treemap是有序的(是针对往map里面put值的顺序而言,貌似是倒序)
1、Hashtable是早期提供的接口,HashMap是新版JDK提供的接口。
2、Hashtable继承Dictionary类,HashMap实现Map接口。
4、Hashtable不允许null值,HashMap允许null值。
HashMap 哈希扩容必须要求为原容量的2倍,而且一定是2的幂次倍扩容结果,而且每次扩容时,原来数组中的元素依次重新计算存放位置,并重新插入;而Hashtable扩容为原容量2倍加1
arraylist和linkedlist
特性:ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 (LinkedList是双向链表,有next也有previous)
总结一点:
ArrayList更适合读取数据,linkedList更多的时候添加或删除数据。
当操作是在一列数据的后面添加数据而不是在前面或中间,并且需要随机地访问其中的元素时,使用ArrayList会提供比较好的性能;当你的操作是在一列数据的前面或中间添加或删除数据,并且按照顺序访问其中的元素时,就应该使用LinkedList了