软件构造记录-集合

上一篇文章介绍了集合的遍历,突然想到List与Set的区别,觉得有必要记录一下集合的知识。

集合按照其存储结构可以分为两大类,即单列集合Collection,和双列集合Map。
这两种集合特点如下:


(1)Collection:单列集合接口,用于存储一系列元素。
Collection集合有两个重要的子接口,分别是ListSet。其中List集合的特点是元素有序,可重复;Set集合的特点是元素无序并且不可重复。List接口的主要实现类有ArrayListListedListSet接口的主要实现类有HashSetTreeSet


(2)Map:双列集合的根接口,用于存储具有键(Key),值(Value)映射关系的元素。
Map集合中每个元素都包含一对键值,并且Key是唯一的,在使用Map集合时可以通过指的Key找到对应的ValueMap接口的主要实现类有HashMapTreeMap

List方法与set方法的区别

(1)重复对象

list方法可以允许重复的对象,而set方法不允许重复对象

(2)null元素

list可以插入多个null元素,而set只允许插入一个null元素

(3)容器是否有序

list是一个有序的容器,保持了每个元素的插入顺序。即输出顺序就是输入顺序,而set方法是无序容器,无法保证每个元素的存储顺序,TreeSet通过 Comparator 或者 Comparable 维护了一个排序顺序

(4)常用的实现类

list方法常用的实现类有ArrayList、LinkedList 和 Vector。其中ArrayList 最为流行,它提供了使用索引的随意访问,而LinkedList 则对于经常需要从 List 中添加或删除元素的场合更为合适,Vector 表示底层数组,线程安全

Set方法中最流行的几个实现类是 HashSet、LinkedHashSet 以及 TreeSet。最流行的是基于 HashMap实现的 HashSet;TreeSet 还实现了 SortedSet 接口,因此 TreeSet 是一个根据其 compare() 和compareTo() 的定义进行排序的有序容器

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值