集合 Set简介


/*
    Set接口:
        Set 接口中的元素无序,并且都会以某种规则保证存入的元素不会出现重复
        
        Set 接口主要有两个实现类,分别是HashSet 和 TreeSet。其中 HashSet 是根据对象的哈希值来确定元素在集合中的存储位置,因此具有
        良好的存取和查找性能. TreeSet 则是根据二叉树的方式来存储元素.它可以实现对集合中的元素进行排序。接下来,将对Set 集合的这两个
        类进行详细讲解
    
    HashSet集合:
        
        HashSet 是 Set 接口的一个实现类,它所存储的元素是不可重复的,并且元素都是无序的。
        当HashSet 集合添加一个元素时,首先会调用该元素的hashCode() 方法来确定元素的存储位置.然后再调用元素的
        equals() 方法来确保该位置没有重复元素
        
        个人认为和 C++ 里的 unordered_set 差不多
        
    TreeSet集合:
        个人认为和C++ 里的set 差不多
        
    TreeSet 和 HashSet 的差别 
        1、TreeSet是二叉树实现的(内部基于TreeMap,数据结构和TreeMap一致),Treeset中的数据是自动排好序的,不允许放入null值。
        2、HashSet是哈希表 实现的(内部基于HashMap,数据结构和HashMap一致),HashSet中的数据是无序的,可以放入null,但只能放入一个null。
        3、HashSet要求放入的对象必须实 现HashCode()方法,放入的对象,是以hashcode码作为标识的,而具有相同内容的对象,hashcode一 样,所以放入的内容不能重复。但是同一个类的对象可以放入不同的实例。
        4、TreeSet为基本操作(add、remove和contains)的时间复杂度是log(n)。另外,TreeSet是非同步的。它的iterator方法返回的迭代器是fail-fast的。
  
*/

import java.util.*;

public class Main{
    public static void main(String[] args){
        
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值