博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java里的集合:List/Set/Map
阅读量:4543 次
发布时间:2019-06-08

本文共 819 字,大约阅读时间需要 2 分钟。

首先对List/Set/Map进行说明:

1. 三者都是接口, List和Set继承至Collection接口,Map为独立的接口

2. List是无序的、Set是有序的。Map中既有有序的实现类也有无序的实现类。

 

一、List

1. 无序

2. List包含:ArrayList、LinkedList、Vector。

  * ArrayList: 底层结构为数组、线程不安全

  * LinkedList: 底层结构为链表、线程不安全

  * Vector: 底层结构为数组、线程安全

3. 补充说明:

  *数组实现:查询快,增加删除操作慢

  * 链表实现:查询慢,增加删除操作快

 

二、Set

1. 有序

2. Set包含:HashSet、LinkedHashSet、TreeSet

  * HashSet: 底层结构为哈希表

  * LinkedHashSet: 底层结构为链表+哈希表  (FIFO)

  * TreeSet: 底层结构为红黑树

3. 补充说明:

  * 哈希表可以保证唯一性 (hashCode()和equals())

  * 链表可以保证有序性 

  * 红黑树可以保证有序性和唯一性 (有序性:平衡二叉树;唯一性:compare(Object o)的返回值是否为0来判断)

 

三、Map

1. TreeMap 有序、HashMap和HashTable无序

2. HashMap与HashTable的区别

  * HashTable是同步的、线程安全,但是效率会慢

  * HashMap是非同步的。线程不安全,效率较快

  * HashTable不允许空值、HashMap允许空值

  * HashTable的父类为Dictionary,HashMap的父类为AbstractMap

 

 

 

参考来源:

1. 

2. 

 

转载于:https://www.cnblogs.com/yishilin/p/10875965.html

你可能感兴趣的文章
完成登录与注册页面的前端
查看>>
Mac下source tree 下的安装
查看>>
Q学习原理及例子
查看>>
rpmbuild 源码打包clickhouse,附带打好的rpm包下载地址
查看>>
软件体系结构原理、方法与实践总结
查看>>
2017-2018-1 《程序设计与数据结构》第3周学习总结
查看>>
一些基础语法
查看>>
我的学习笔记
查看>>
win10企业版无法访问共享文件夹
查看>>
查行号
查看>>
《学习之道》第三章学习方法12批评使我们更优秀
查看>>
猫眼首页
查看>>
java面试题之数据基本类型各占几个字节
查看>>
设计模式(总纲)
查看>>
线程池技术
查看>>
http后台json解析实例
查看>>
iOS中延时执行方法的比较和汇总
查看>>
1284 2 3 5 7的倍数
查看>>
php 手记
查看>>
设计模式-注册树模式
查看>>