【HashSet】

1. HashSet存储不能够存储相同的元素,元素是否相同的判断:重写元素的equals方法。equals方法和hashCode方法必须兼容,如:equals方法判断的是用户的名字name,那么hashCode的返回的hashcode必须是name。hashcode();

2. HashSet存储是无序的,保存的顺序与添加的顺序是不一致的,它不是线性结构,而是散列结构,(通过散列表:散列单元指向链表)。因此,HashSet的查询效率相对比较高。

3. HashSet不是线程安全的,不是线程同步的。这需要自己实现线程同步:Collections.synchronizedCollection(),方法实现。

【ArrayList】

1. 不是线程安全的,不是线程同步的。

2.ArrayList是通过可变大小的数组实现的,允许null在内的所有元素。

3.ArrayList中存放顺序和添加顺序是一致的。并且可重复元素。

4.ArrayList适合通过位子来读取元素。

【LinkedList】

1.不是线程安全的,不是线程同步的。

2.LinkedList是通过双向循环链表来实现的。

3.存放顺序和添加顺序是一致的。可添加重复元素。

4.适合链表头尾操作和插入指定位置元素的操作。

ArrayList和LinkedList之间的数据传递可通过toArray()方法。

【HashMap】

1.非线程安全,不是线程同步。

2.添加顺序和保存的顺序是不一致的。

3.必须重写key的equals方法和hashCode方法。

4.HashMap的实际容量=容量*因子,默认为16*0.75=12.所以考虑到HashMap的添加的效率问题,根据实际情况来设计它的开始的默认的容量。

的操作方法根据api来查找。

5.添加的值中是允许有null的值存在的。

【Hashtable】

1.是线程安全的,是线程同步的,在实现线程同步的时候是不需要手动来实现线程同步的。因此相对效率低。

2.添加的顺序和保存的顺序是不一致的。

3.添加的值中是不允许有null值存在的。

【TreeMap】

1.非线程安全,不是线程同步的。在必要的情况下必手动实现线程同步。

2.在元素的添加,删除和定位映射中效率相对hashMap较低。但是在排序方面TreeMap比较实用。

3.添加的值中允许有null值,但是在输出的时候会报空指针异常。

以上信息并非原创,仅作收藏学习用。

最新文章

  1. webform中Session和Cookie对象的用法
  2. spring boot redis缓存JedisPool使用
  3. cocos2d-x游戏开发之烟花粒子效果
  4. 【PHP设计模式 03_JianDanGongChang.php】 简单工厂
  5. 非常陌生的cmake
  6. 剑指offer--面试题7
  7. wordpress整站搬家总结
  8. Visual Studio express
  9. SQL基本查询_单表查询(实验二)
  10. 《Linux命令行与shell脚本编程大全》第十三章 更多的结构化命令
  11. 14.MySQL(二)
  12. AtCoder Grand Contest 019
  13. C# 图解教程 第三章 类型、存储和变量
  14. WPF ListBox 获取listBoxItem
  15. thinkpad 睡眠唤醒后热键功能正常,但屏幕无法显示状态/进度条/图标
  16. git指令详解总结
  17. django 常用方法总结 < 手写分页-上传头像-redis缓存,排行 ...>
  18. python中json的使用
  19. fabric镜像安装脚本分析
  20. htop工具使用

热门文章

  1. 201521123055 《Java程序设计》第3周学习总结
  2. 201521123060《Java程序设计》第2周学习总结
  3. 06jQuery-06-AJAX
  4. log4j 日志脱敏处理 + java properties文件加载
  5. Java单链表实现
  6. Spring + Spring MVC + MyBatis 整合
  7. SQL性能优化十条经验(转)
  8. HCatalog
  9. Linux入门之常用命令(2)
  10. 使用javaAPI操作hdfs