整理List接口,Set接口,Map接口

1.Collection和Collections的区别
java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式
在这里插入图片描述
java.util.Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作
2.Collection下的子类,(Java中内置了集合框架)
list和set都实现了collection的接口
在这里插入图片描述
List接口:
List 接口存储一组不唯一,有序(插入顺序)的对象
①、list有序的,列表通常允许重复的元素(可以允许多个重复对象)
②、列表元素里面可以null元素,通常允许有多个为null(可以插入多个null元素)
③、list 提供了特殊的迭代器(ListIterator)(是一个有序的容器,保证每个元素的插入的顺序,输入顺序也就是插入的顺序。)
④、常用的实现类有ArrayList、LinkedList和Vector。
Set接口:
Set 接口存储一组唯一,无序的对象
①不包含重复元素的Collection(不允许有重复的对象)
②最多包含一个null元素(只允许有一个null元素)
③是一个无序容器,无法保证每个元素的存储顺序,TreeSet通过comparable或者comparator维护一个排序的顺序。
④set最流行的实现类有HashSet、LinkedHashSet和TreeSet。最流行基于HashMap实现的HashSet;TreeSet还实现了SortedSet接口,因此TreeSet是根据其一个comparator()和comparable()的定义进行排序的有序容器。
3.List实现类:
实现类有ArrayList、LinkedList和Vector
在这里插入图片描述
ArrayList类:
1.遍历元素和随机访问元素的效率比较高(底层是数组结构查询快(不唯一,有序))
(1)ArrayList 是一种变长的集合类,基于定长数组实现。
(2)ArrayList 允许空值和重复元素,当往 ArrayList 中添加的元素数量大于其底层数组容量时,其会通过扩容机制重新生成一个更大的数组。
(3)ArrayList 底层基于数组实现,所以其可以保证在 O(1) 复杂度下完成随机查找操作。
(4)ArrayList 是非线程安全类
在这里插入图片描述
LinkedList类:
底层是双向链表数据结构的,增和删比较快,查询和修改比较慢(唯一,无序)
在这里插入图片描述
是非线程安全类
Vector类:
Vector类和ArrayList类差不多,都是有序集合
但是Vector类 是线程安全类,效率比较底
Vector类被synchronized修饰,所以是安全类
4.Set实现类:
在这里插入图片描述
Set集合存储顺序无序,不可以保存重复元素。
Set接口常用实现类:HashSet
HashSet是Set接口的典型实现,大多数时候使用Set集合时就是使用这个实现类。HashSet按Hash算法来存储集合中的元素,因此具有很好的存取和查找性能。底层数据结构是哈希表。哈希表一个元素为链表的数组,综合了数组与链表的优点。
HashSet具有以下特点:
不能保证元素的排列顺序,顺序可能与添加顺序不同,顺序也可能发生变化;
HashSet不是同步的;
集合元素值可以是null;
内部存储机制
靠元素重写hashCode方法和equals方法来判断两个元素是否相等,如果相等则覆盖原来的元素,依此来确保元素的唯一性
hashCode和equals的区别:
hashCode和==差不多,都是:保存长度是否相等
equals:保存地址是否相等

5.Map
在这里插入图片描述
Map接口存储一组键值对象,提供key到value的映射(唯一,无序)
可以保存null,但是只有一个,第二个key,是空的时候会覆盖第一个key的value。

HashMap类

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值