初学javaDay18

Set集合

特点:
一个不包含重复元素的 collection,由于它不能直接实例化,一般情况 使用子实现类实例化:HashSet、TreeSet

HashSet集合

特点:元素唯一的,存储和取出不一致(无序性),特别是它不保证该顺序恒久不变。
LinkedHashSet(HashSet的子类):
底层依赖于哈希表和链接列表实现,由哈希表保证元素唯一,由链表保证元素有序
特点:有序性和唯一性

使用Set集合存储自定义对象,HashSet集合底层add方法依赖于HashMap的put方法
依赖于hashCode()和equals()方法
hashCode():保证唯一性(比较对象的地址值是否相同,如果地址值相同,还需要比较内容是否相同)
equals():默认比较的地址值相同,要比较内容是否相同,必须在当前类中重写equals()方法

TreeSet集合

概述:使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的 Comparator 进行排序,具体取决于使用的构造方法。
特点:基于TreeMap的实现,底层数据结构是一种红黑树结构,根据使用不同的构造方法,排序不同

TreeSet集合两种排序
通过无参构造放TreeSet() ;
自然排序,对于自定义的类实现Comparable接口,重写compareTo(T o)方法
比较器排序:是一个有参构造方法
public TreeSet(Comparator comparator):形参是一个接口类型,需要接口的子实现类对象

总结

Collection集合中每个集合的特点描述

  1. List
    1.1 ArrayList:
    底层数据结构:可变数组的实现。
    查询快,增删慢a
    从线程安全方面考虑:此实现不是同步的,线程不安全,执行效率高!
    1.2 Vector:
    底层数据结构:对象数组
    查询快,增删慢
    线程安全角度考虑:Vector 是同步的,线程安全,执行效率低
    1.3 LinkedList(特有功能:模拟栈结构的特点)
    底层数据结构:链接列表实现
    查询慢,增删快
    线程安全角度考虑:此实现不是同步的,线程不安全,执行效率高
  2. Set
    2.1 HashSet:
    底层数据结构是哈希表(元素是链表的数组),哈希表依赖于哈希值存储,元素唯一的,存储和取出不一致(无序性),特别是它不保证该顺序恒久不变。
    2.2 TreeSet:
    基于TreeMap的实现,底层数据结构是一种红黑树结构(红黑树是一种自平衡的二叉树),根据使用不同的构造方法,排序不同
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值