Java集合分为Collection和Map,Collection又分为List、Set。 List中有ArrayList、LinkedList和Vector;Set中又分为HashSet和TreeSet。Map中有HashMap和TreeMap。他们的分类结构关系如下:

分类结构

1. Collection

1.1 List

1.1.1 ArrayList

1.1.2 LinkedList

1.1.3 Vector

1.2 Set

1.2.1 HashSet

1.2.2 TreeSet

2. Map

2.1 HashMap

2.2 TreeMap

特点和区别

1. Collection:以值的形式直接存储,可重复

1.1 List  有序的,可重复的

1.1.1 ArrayList 底层是数组,添加删除慢,查找快,线程不安全的;

1.1.2 LinkedList 底层是链表,添加删除快,查找慢,线程不安全的;

1.1.3 Vector  底层是数组,添加删除慢,查找快,线程安全的。

1.2 Set 无序的,不可重复的

1.2.1 HashSet 底层是哈希表,可以通过重写hashCode() 和 equals()方法去重,不可排序的;

1.2.2 TreeSet 底层是二叉树,可以通过重写Comparable中的compareTo方法,或者重写Comparator的compare方法实现去重和排序。

2. Map: 以键值对的形式,key-value结构映射的

2.1 HashMap 线程不安全的,可以通过重写hashCode() 和 equals()方法去重,不可排序的;

2.2 TreeMap 线程不安全的,可以通过重写Comparable中的compareTo方法,或者重写Comparator的compare方法实现排序。

最新文章

  1. [MFC] MFC 打开HTML资源(用ID版,也可加载到自己的web控件上)
  2. remote desktop connect btw Mac, Windows, Linux(Ubuntu) Mac,Windows,Linux之间的远程桌面连接
  3. 双系统下利用MbrFix.exe卸载LINUX系统
  4. unix:///tmp/supervisor.sock no such file
  5. 数据挖掘算法-Apriori Algorithm(关联规则)
  6. SDUTRescue The Princess(数学问题)
  7. 简易 bokeh 图像散景效果算法实现
  8. webpack构建本地服务器
  9. Golang 入门系列(五)GO语言中的面向对象
  10. leecode第二百三十七题(删除链表中的节点)
  11. 在HTML中用循环语句
  12. Sql Server中的游标最好只用于有主键或唯一键的表
  13. SSH协议
  14. AFNetworking 遇到错误 Code=-1016 "Request failed: unacceptable content-type: text/plain"
  15. 使用Java创建Excel,并添加内容
  16. Gym 101246J Buoys(三分查找)
  17. 与table有关的布局
  18. netty/example/src/main/java/io/netty/example/http/snoop/
  19. 「C语言」原码反码补码与位运算
  20. Timer类与TimerTask类

热门文章

  1. 程序员装B指南(转载)
  2. 用Eclipse创建第一个Spring项目(最最入门级)
  3. ASP.NET常用内置对象之——Server
  4. 在win7 windows 上编译 beego 上传到 linux 去执行
  5. GetDIBits 提示堆栈损坏的解决办法
  6. python StringIO&BytesIO
  7. yii2.0中url重写实现方法
  8. GO语言(八) defer注意点
  9. 035server端并发聊天
  10. 使用ArcSDE SQL操作怎么获得新对象的objectid、GUID