当前位置:首页 > 笔记

List和set集合,Map集合的区别以及它们的实现类有哪些

jsc7年前 (2019-07-19)笔记3170

List 是可重复集合,Set 是不可重复集合,这两个接口都实现了 Collection 父接口。

Map 未继承 Collection,而是独立的接口,Map 是一种把键对象和值对象进行映射的集合,它的每一个元素都包含了一对键对象和值对象,Map 中存储的数据是没有顺序的, 其 key 是不能重复的,它的值是可以有重复的。

List 的实现类有 ArrayList,Vector 和 LinkedList:

ArrayList 和 Vector 内部是线性动态数组结构,在查询效率上会高很多,Vector 是线程安全的,相比 ArrayList 线程不安全的,性能会稍慢一些。

LinkedList:是双向链表的数据结构存储数据,在做查询时会按照序号索引数据进行前向或后向遍历,查询效率偏低,但插入数据时只需要记录本项的前后项即可,所以插入速度较快。

Set 的实现类有 HashSet 和 TreeSet;

HashSet:内部是由哈希表(实际上是一个 HashMap 实例)支持的。它不保证 set 元素的迭代顺序。

TreeSet:TreeSet 使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的 Comparator 进行排序。

Map 接口有三个实现类:Hashtable,HashMap,TreeMap,LinkedHashMap;

Hashtable:内部存储的键值对是无序的是按照哈希算法进行排序,与 HashMap 最大的区别就是线程安全。键或者值不能为 null,为 null 就会抛出空指针异常。

TreeMap:基于红黑树 (red-black tree) 数据结构实现,按 key 排序,默认的排序方式是升序。

LinkedHashMap:有序的 Map 集合实现类,相当于一个,先 put 进去的最后出来,先进后出。


扫描二维码推送至手机访问。

版权声明:本文由微小站发布,如需转载请注明出处。

本文链接:https://jsc0.com/post/173.html

标签: Java集合类
分享给朋友:

“List和set集合,Map集合的区别以及它们的实现类有哪些” 的相关文章

BufferedInputStream对象的read()怎么用?

在FileInputStream里有一个说明是说此方法将阻塞,意思就是说在你读一个文件输入流的时候,当读到某个位置的时候,如果做一些其他处理(比如说接受一部分字节做一些处理等等)这个时候输入流在什么位置就是什么位置,不会继续往下读,而BufferedInputStream虽然也有一个read方法,但…

输入出流

out.print()方法,可以输出一个java对象;out.write()方法,只能输入一个字符串;out.flush()是把缓冲区的数据强行输出;直接关闭流,会导致socket也被关闭.正确的调用方法是不直接关闭流,而是调用socket的closeinput/closeoutput方法来关闭,这…

java类型

最近在写Java后台, 编译时出现:No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing instance of type E(e.g.  x.new…

百度坐标和GPS坐标转换

百度地图API中,有GPS坐标转百度坐标的功能http://dev.baidu.com/wiki/static/map/API/examples/?v=1.2&0_6#0&6http接口是:http://api.map.baidu.com/ag/coord/convert?from=…

Bitmap too large to be uploaded into a texture

从手机相册里面显示图片,但是发现有的图片能显示有的图片不能显示,路径都是对的,程序也没提示任何错误。后来通过看日志发现error message: Bitmap too large to be uploaded into a texture (4208x3120, max=4096x409…