【Set 接口 】 及其实现类

    Set<Integer> set = new HashSet<>();
    set.add(1);
    set.add(3);
    set.add(2);
    set.add(1);
    //使用迭代器遍历set集合
    Iterator<Integer> it = set.iterator();
    while(it.hasNext()){
	    Integer n = it.next();
	    System.out.println(n);  // 1 2 3
    }

    //使用增强for遍历set集合
    for(Integer i:set){
	    System.out.println(i);  // 1 2 3
    }    

【Set 接口】

是用于存储无序的、不重复的数据,且不能通过索引访问元素

 boolean  add(E e)如果此set集合尚未存在指定的元素,则添加此元素
 boolean   addAll(Collection<? extends E> c)将参数集合中所有元素添加到此set集合的尾部
boolean    remove(Object obj)将指定参数对象移出集合
void   clear()移出set集合中所有元素
Iterator  iterator()返回此set中的元素上进行迭代的迭代器
int  size()返回此set集合中所有的元素数
boolean   isEmpty()如果set不包含元素,则返回set

  • HashSet (implements  Set)

是基于哈希表的Set集合

当需要存对象时,就重写equals和hashCode方法

/**
     * 如果对象类型是User,先比较hashcode,一致的场合再比较每个属性的值
     */
    @Override
    public boolean equals( Object obj ) {
        if (obj == null) {
            return false;
        }
        if (this == obj) {
            return true;
        }
        if (obj instanceof User ) {
            User user= (User) obj;

            // 比较每个属性的值一致时才返回true
            if (user.id.equals(this.id)) {
                return true;
            }
        }
        return false;
    }

    /**
     * 重写hashcode方法,返回的hashCode一样才再去比较每个属性的值
     */
    @Override
    public int hashCode() {
        return id.hashCode();
    }

 

  • LinkedHashSet (implements  Set)

是基于双向链表和哈希表、继承自HashSet的Set集合

  • TreeSet (implements  Set)

是基于红黑树、实现了Set接口,具有排序功能的Set集合。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值