java中Set接口

                                       **Set接口** 

Set接口继承自Collection,Set接口中没有新增方法,方法和Collection保持完全一致。我们在前面通过List学习的方法,在Set中仍然适用。因此,学习Set的使用将没有任何难度。

  Set容器特点:无序、不可重复。无序指Set中的元素没有索引,我们只能遍历查找;不可重复指不允许加入重复的元素。更确切地讲,新元素如果和Set中某个元素通过equals()方法对比为true,则不能加入;甚至,Set中也只能放入一个null元素,不能多个。

  Set常用的实现类有:HashSet、TreeSet等,我们一般使用HashSet。

package cn.sxt.mycollection;

import java.util.HashSet;

import java.util.Set;

/**

  • set没有顺序,不可重复,list有顺序可重复
  • 测试HashSet的基本方法
  • @author lenovo
    *
    */
    public class TestHashSet {
    public static void main(String[] args) {
    Set set1=new HashSet<>();
    set1.add(“aa”);
    set1.add(“bb”);
    set1.add(“aa”);
    System.out.println(set1);
    set1.remove(“bb”);
    System.out.println(set1);
    Set set2=new HashSet<>();
    set2.add(“mb”);
    set2.addAll(set1);
    System.out.println(set2);

}

}

package cn.sxt.mycollection;

import java.util.HashMap;

/**

  • 手动实践一个HashSet,更深理解HashSet的底层原理

  • @author 骚彬
    *
    */
    public class SxtHashSet {
    HashMap map;
    private static final Object PRESENT=new Object();
    public SxtHashSet() {
    map=new HashMap();
    }
    public int size() {
    return map.size();
    }
    public void add(Object o) {
    map.put(o, PRESENT);
    }
    @Override
    public String toString() {
    StringBuilder sb=new StringBuilder();
    sb.append("[");

    for(Object key:map.keySet()) {
    	sb.append(key+",");
    }
    sb.setCharAt(sb.length()-1, ']');
    

    return sb.toString();

    }
    public static void main(String[] args) {
    SxtHashSet set=new SxtHashSet();
    set.add(“aaa”);
    set.add(“bbb”);
    set.add(“ccc”);
    System.out.println(set);
    }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值