-
Notifications
You must be signed in to change notification settings - Fork 785
2019-08-13:谈谈List,Set,Map的区别? #120
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
有序,唯一,键值对 |
它们分别代表列表,集,映射;区别有序,唯一,键值对 |
List:有序,可重复 |
List是集合, 子类有 ArrayList LinkedList, . Set 有 HashSet TreeSet . Map: HashMap, tree |
List中存储的数据是有顺序的,并且值允许重复;Map中存储的数据是无序的,它的键是不允许重复的,但是值是允许重复的;Set中存储的数据是无顺序的,并且不允许重复,但元素在集合中的位置是由元素的hashcode决定,即位置是固定的(Set集合是根据hashcode来进行数据存储的,所以位置是固定的,但是这个位置不是用户可以控制的,所以对于用户来说set中的元素还是无序的)版权声明:本文为CSDN博主「Java星」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。 |
List和Set都实现了Collection接口,Map是单独存在的, List存储有序可重复集合,Set是无序不可重复集合,Map是存储的是键值对数据集合。 List子类中有ArrayList和Vactor和LinedList,ArrayList和Vactor都是用单项数组实现,差别是vactor是线程安全的,arraylist不是,对应的HashMap和HashTable也是这种关系 |
List和Set都实现了Collection接口,Map是一个单独的接口 |
List中的元素,有序、可重复、可为空; |
有趣一点学技术一、一个萝卜一个坑 —— List
二、暗度陈仓 —— Set你去看看 Set 的两个实现类(TreeSet、HashSet)源码,就会发现底层存储结构都是用的map,把 set 的值放在 map 的 key 里的,value 是一个共用的 object 对象。 所以 Set 的特点也就是 Map 的 Key 的特点:
三、我不管数据存哪了,给你个通行证,你把它给我找出来! —— Map
|
其实说「List」底层就是个Object[]是有歧义的 比如LinkedList的实现最终是一个链表,所有的增删查改都是基于链表来做的 |
那些说Set是无序的,知不知道有个实现类叫LinkedHashSet?Set只是不能有重复的元素,其他的说多了都是扯淡,建议读一下《Java编程思想》——持有对象一章。 |
大家说的都是广义上的set特性。 |
认同的人自然认同,不认同的我也不强求你认同。 |
List:An ordered collection (also known as a sequence). |
List: Set: Map: |
这是来自QQ邮箱的假期自动回复邮件。
|
No description provided.
The text was updated successfully, but these errors were encountered: