java基础--Set、List和Map的区别

总括:

Collection是最基本的集合接口,里面存放单个的Object元素。JavaJDK提供的类都继承了Collection的子接口

Map没有继承Collection接口,Map里存放key-value。一个Map中不能包含相同key,每个key只能映射一个value。Map接口提供3种集合的视图,Map的内容可以被当做一组key集合,一组value集合,或者一组key-value映射。

1、Set

       Set  里面放的是无序的不重复的元素。两个实现类:HashSet,LinkedHashSet.HashSet底层也是由HashMap实现,所以存放是无序的。

2、List

       List 里面放的是有序的可以重复的元素。               

             List接口有三个实现类:LinkedList,ArrayList,Vector 

LinkedList:底层基于链表实现,链表内存是散乱的,每一个元素存储本身内存地址的同时还存储下一个元素的地址。链表增删快,查找慢 

ArrayList和Vector的区别:ArrayList是非线程安全的,效率高;

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

 

 

3、Map

      Map存储方式key-value。       

     Map接口有三个实现类:HashMap,HashTable,LinkeHashMap

HashMap非线程安全,高效,支持null;HashTable线程安全,低效,不支持null

SortedMap有一个实现类:TreeMap

 

4、如何选取

      

list是用来处理序列的,而set是用来处理集的。Map是知道的,存储的是键值对

set 一般无序不重复.mapkv 结构 list 有序

 

就个人而言.list用的比较多. 其次map  最后set 至于什么情况下使用什么集合.看情况了.也不好说.也没那么绝对.


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值