【一起来学java数据结构】——Set基础详解

【一起来学java数据结构】——Set


Set是一个在Collection下的一个数据结构。

它和Map很像,不同点就是:Set实现了Collection,而Map并没有实现它。

更重要的一点是:Set里面只是存储了Key,没有存储Value

image-20220224172849928

Set的方法

下面就先来介绍一下set的一些基本方法

public static void main(String[] args) {
        Set<Integer> set=new HashSet<>();
        set.add(1);
        System.out.println(set.add(2));//true
        System.out.println(set.contains(1));//true
        System.out.println(set.contains(100));//false
        System.out.println(set.size());//2
        System.out.println(set.remove(100));//false
        System.out.println(set.remove(1));//true
        System.out.println(set.isEmpty());//false
        set.clear();
        System.out.println(set.isEmpty());//true

}

toArray

将set里的值转换成Array

    public static void main(String[] args) {
        Set<Integer> set=new HashSet<>();
        set.add(1);
        set.add(2);
        set.add(3);
        set.add(4);
        Object[] objects= set.toArray();
        for (Object o:objects) {
            System.out.print(o+" ");
        }
    }
----------------------------------------------------
    //还可以使用下面的代码
     Integer[] integers=set.toArray(new Integer[0]);
        for (Integer integer:integers) {
            System.out.print(integer+" ");
        }

Iterator

这是一个迭代器和while一起使用

    public static void main(String[] args) {
        Set<Integer> set=new HashSet<>();
        set.add(1);
        set.add(2);
        set.add(3);
        set.add(4);
        Iterator<Integer> iterator=set.iterator();
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }
    }

containsAll

    public static void main(String[] args) {
        Set<Integer> set=new HashSet<>();
        set.add(1);
        set.add(2);
        set.add(3);
        set.add(4);
        List<Integer> list=new ArrayList<>();
        list.add(1);
        list.add(2);
        System.out.println(set.containsAll(list));//true
        list.add(0);
        System.out.println(set.containsAll(list));//false
    }

检查Set里面是不是包含其他集合里面的元素

addAll

将另一个集合的内容加入到Set中,并会自动去重

    public static void main(String[] args) {
        Set<Integer> set=new HashSet<>();
        set.add(1);
        set.add(2);
        set.add(3);
        set.add(4);
        List<Integer> list=new ArrayList<>();
        list.add(1);
        list.add(2);
        set.addAll(list);
        System.out.println(set);// 1 2 3 4
        list.add(0);
        set.addAll(list);
        System.out.println(set);//0 1 2 3 4
    }

Set的特点

  1. 和Map不一样,Set本身是继承了Collection接口的
  2. 实现Set接口的常用类是HashSet和TreeSet,还用一个不常用的类是LinkedHashSet
  3. Set里面只存放Key,不存放Value
  4. Set里面没有提供修改Key的方法,所以只能删掉再重新插入
  5. key的值不可以相同且不可以为null
  6. Set的最大的作用是去重
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值