网站首页 > java教程 正文
Java中的集合类很多,有各种List,各种Map,各种Set。那么这么多类,我们怎么来区分它们呢?
我们来看某个集合类是以什么结尾的,如果以List结尾,那说明这个集合类的本质就是一个List,List前面的定义是这个List的实现方式。
比如:ArrayList,说明这是一个List,它的实现方式是数组;LinkedList,说明这是一个List,它的实现方式是链表。
以此类推,对于Map来说,有HashMap和TreeMap。它们的本质都是Map,只不过HashMap是用哈希表这种数据结构来实现的Map(当然冲突处理时也用链表和红黑树了),而TreeMap是用树这种数据结构来实现的Map。
对于Set呢?有HashSet,TreeSet和LinkedHashSet。同样,它们的本质都是Set,只不过HashSet是基于HashMap的,也就是说它的底层数据结构也是哈希表;TreeSet是基于TreeMap的,也就是说它的底层数据结构是树;LinkedHashSet是基于HashSet的,也就是说它的底层数据结构是基于哈希表和链表的。
那么,用以实现的底层数据结构不同,能说明什么问题呢?当然,说明它们的功能是不同的。
哈希表的作用是存取速度非常快,但是不能排序。树的作用是存取速度没有哈希表快,但是可以排序。
所以,我们可以分析出:
HashMap:基于哈希表+链表+红黑树实现,不保证顺序,也不能排序。
TreeMap:基于红黑树实现,可以进行排序,排序实现Comparator接口。
HashSet:基于HashMap实现,不保证顺序,也不能排序。
TreeSet:基于TreeMap实现,可以进行排序,排序实现Comparator接口。
LinkedHashSet:基于HashSet实现,不能排序,但是可以保证加入顺序。
对于List,因为常用的只有数组和链表两种方式,比较简单,这里就不说明了。
猜你喜欢
- 2024-11-17 三句话都能解释清楚的java集合类HashSet,你清楚吗?
- 2024-11-17 Java常用的并发集合类(java中的并发是什么意思)
- 2024-11-17 数据结构之集合体系概览 带你了解集合体系中有哪些重要的分类
- 2024-11-17 能懂系列之 List 集合详解(list集合的方法)
- 2024-11-17 100个Java工具类之1:多种集合类型实现排序功能
- 2024-11-17 Java 集合体系有什么?(一)(java集合概述)
- 2024-11-17 「软帝学院」java集合类框架,你了解多少?一
- 2024-11-17 面试官问道:关于java集合类你都搞懂了吗?学会怒怼面试官
- 2024-11-17 跟我学编程 5:Java中常见的集合 知多少?
- 2024-11-17 Java多线程环境下使用的集合类示例详解
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)