第十四天 how can I 坚持
2015-04-15 23:43
190 查看
今天工作中遇到了LinkedHashMap,于是就百度下它和HashMap的区别,LinkedHashMap遍历的话是有顺序的,遍历的话是以存储的顺序输出,HashMap遍历是没有顺序的,线程不安全的,可以同时写,并且key可以有一个为null,value可以有多个为null,HashTable是线程安全的,key和value都不可以为null。实现HashMap同步:Map<String String> map = Collections.synchronizedMap(new LinkedHashMap(<String String)); TreeMap可以把保存的记录按键值排序。
顺便再回忆下 ArrayList和Hashset和LinkedList的区别:(以下为复制粘贴至http://bbs.csdn.net/topics/390337625?page=1)
List:元素是有顺序的,元素可以重复因为每个元素有自己的角标(索引)
|-- ArrayList:底层的数据结构是数组结构,特点是:查询很快,增 删 稍微慢点,线程不同步
|-- LinkedList:底层使用的是链表数据结构,特点是:增 删很快,查询慢。
|--Vector:底层是数组数据结构,线程同步,被ArrayList代替了,现在用的只有他的枚举。
Set:元素是无序的,且不可以重复(存入和取出的顺序不一定一致),线程不同步。
|--HashSet:底层是哈希表数据结构。根据hashCode和equals方法来确定元素的唯一性
|--TreeSet:可以对Set集合中的元素进行排序(自然循序),底层的数据结构是二叉树,也可以自己写个类实现Comparable 或者 Comparator 接口,定义自己的比较器,将其作为参数传递给TreeSet的构造函数。
顺便再回忆下 ArrayList和Hashset和LinkedList的区别:(以下为复制粘贴至http://bbs.csdn.net/topics/390337625?page=1)
List:元素是有顺序的,元素可以重复因为每个元素有自己的角标(索引)
|-- ArrayList:底层的数据结构是数组结构,特点是:查询很快,增 删 稍微慢点,线程不同步
|-- LinkedList:底层使用的是链表数据结构,特点是:增 删很快,查询慢。
|--Vector:底层是数组数据结构,线程同步,被ArrayList代替了,现在用的只有他的枚举。
Set:元素是无序的,且不可以重复(存入和取出的顺序不一定一致),线程不同步。
|--HashSet:底层是哈希表数据结构。根据hashCode和equals方法来确定元素的唯一性
|--TreeSet:可以对Set集合中的元素进行排序(自然循序),底层的数据结构是二叉树,也可以自己写个类实现Comparable 或者 Comparator 接口,定义自己的比较器,将其作为参数传递给TreeSet的构造函数。
相关文章推荐
- 第五百三十四天 how can I 坚持
- 第二百三十五天 how can I 坚持
- 第五百四十一、二、三天 how can I 坚持
- 第二百五十一天 how can I 坚持
- 第二百七十四、五、六天 how can I 坚持
- 第二百七十七天 how can I 坚持
- 第二百七十八天 how can I 坚持
- 第五百八十天 how can I 坚持
- 第二百八十七天 how can I 坚持
- 第三百天了 how can I 坚持
- 第三百二十七天 how can I 坚持
- 第六百一十七天 how can I 坚持
- 第六百三十天 how can I 坚持
- 第十九天 how can I 坚持
- 第二十五天 how can I 坚持
- 第三百七十六天 how can I 坚持
- 第三百八十三天 how can I 坚持
- 第三百八十五、六、七天 how can I 坚持
- 第五十一天 how can I 坚持
- 第五十五天 how can I 坚持