文档章节

map、set list 区别联系

weiliu007
 weiliu007
发布于 2016/08/30 23:09
字数 371
阅读 10
收藏 1

List特点:元素有放入顺序,元素可重复 
Map特点:元素按键值对存储,无放入顺序 
Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的) 

ConcurrentHashMap融合了hashtable和hashmap二者的优势。

ConcurrentHashMap:是线程安全的

怎么获取线程安全的map,List.....?

Map m = Collections.synchronizedMap(new HashMap());
List接口有三个实现类:LinkedList,ArrayList,Vector 
LinkedList:底层基于链表实现,链表内存是散乱的,每一个元素存储本身内存地址的同时还存储下一个元素的地址。链表增删快,查找慢 

ArrayList 查找,随机访问快
ArrayList和Vector的区别:

      ArrayList是非线程安全的,效率高;

      Vector是基于线程安全的,效率低 


Set接口有两个实现类:HashSet(底层由HashMap实现),LinkedHashSet 
SortedSet接口有一个实现类:TreeSet(底层由平衡二叉树实现) 
Query接口有一个实现类:LinkList 


Map接口有三个实现类:HashMap,HashTable,LinkeHashMap 
  HashMap非线程安全,高效,支持null;

  HashTable线程安全,低效,不支持null 
SortedMap有一个实现类:TreeMap 
其实最主要的是,list是用来处理序列的,而set是用来处理集的。Map是知道的,存储的是键值对 
set 一般无序不重复.map kv 结构 list 有序 

© 著作权归作者所有

weiliu007
粉丝 16
博文 171
码字总数 84825
作品 0
深圳
程序员
私信 提问
java基础(一)

阅读目录 1 throws与throw的区别 2 collection接口与map接口 3 list与set的区别 4 list都有哪些实现 5 如何创建线程对象 6 什么是泛型,作用? 7 自动装箱?拆箱? 1 throws与throw的区别 解...

为梦而来
2015/12/09
39
0
【面试虐菜】—— JAVA面试题(3)

1 throws与throw的区别 解析:throws和throw是异常处理时两个常见的关键字,初级程序员常常容易正确理解throw和throws的作用和区别,说明已经能比较深入理解异常处理。Throw用来抛出异常,如...

青夜之衫
2017/12/04
0
0
java 集合类Array、List、Map区别和联系

java集合类主要分为以下三类: 第一类:Array、Arrays 第二类:Collection :List、Set 第三类:Map :HashMap、HashTable 一、Array , Arrays Java所有“存储及随机访问一连串对象”的做法...

五大三粗
2015/02/27
42
0
java 集合----Map、Collection(List、Set)

接口:红色;实现类:黑色字体 一、 Collection集合 Collection _____Set(HashSet) _____SortedSet(TreeSet) _____List(ArrayList,LinkedList,Vector ) Collection:集合层次中的根接口,J...

LYQ1990
2016/04/28
34
0
Java中List,Set和Map详解及其区别和使用场景(转)

Java中的集合包括三大类,它们是Set(集)、List(列表)和Map(映射),它们都处于java.util包中,Set、List和Map都是接口,它们有各自的实现类。Set的实现类主要有HashSet和TreeSet,List的...

easonjim
2017/12/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Python 周刊第 418 期

新闻 PyCon US 2020 开始接受财务赞助! https://pycon.blogspot.com/2019/10/financial-aid-launches-for-pycon-us-2020.html2020年 Python 美国开发者大会,tips: 中国也有,可以赞助国内的...

iCodeBugs
3分钟前
1
0
ThreadLocal源码阅读

首先,从set方法入手, // ThreadLocalpublic void set(T value) { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t);//这里可以看出,从Threa......

小海bug
12分钟前
2
0
成长之路 万事知行合一

思想决定行为,行为决定习惯,习惯决定性格,性格决定命运。 很多道理,不管是前辈给你指点说的也好,还是你自己看一些书籍学到的也好,如果不能够做到,就连那些不知道这个道理的人都不如。...

T型人才追梦者
16分钟前
2
0
uml图六种箭头的含义

在看一些技术博客的时候,经常会见到博客里画上很多uml图。因为经常会被这几种表达关系的箭头搞混,这里我就把常见的6种箭头表达的含义理一下。 泛化 概念:泛化是一种一般与特殊、一般与具体...

1只特立独行的猪
22分钟前
2
0
【在 Nervos CKB 上做开发】Nervos CKB 脚本编程简介[3]:自定义代币

原文作者:Xuejie 原文链接:https://xuejie.space/2019_09_06_introduction_to_ckb_script_programming_udt/ Nervos CKB 脚本编程简介[3]:自定义代币 CKB 的 Cell 模型和 VM 支持许多新的用...

NervosCommunity
56分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部