当前位置:   article > 正文

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

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

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

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+" ");
        }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

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());
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

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
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

检查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
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

Set的特点

  1. 和Map不一样,Set本身是继承了Collection接口的
  2. 实现Set接口的常用类是HashSet和TreeSet,还用一个不常用的类是LinkedHashSet
  3. Set里面只存放Key,不存放Value
  4. Set里面没有提供修改Key的方法,所以只能删掉再重新插入
  5. key的值不可以相同且不可以为null
  6. Set的最大的作用是去重
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/996497
推荐阅读
相关标签
  

闽ICP备14008679号