Set集合

Set集合是Collection集合的子体系,元素特点是无序,唯一.

Set是一个接口类,不能通过new的方式创建对象.

Set中没有带索引的方法,不能通过for循环遍历.

Set集合的常用子类有两个,分别是HashSet集合和TreeSet集合.

set集合也是有索引的,只是不对外暴露,作为程序员我们无法使用Set集合的索引

Set入门


import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class demo01 {
    public static void main(String[] args) {
        HashSet<String> hs = new HashSet<>();
        hs.add("hello");
        hs.add("world");
        hs.add("java");
        hs.add("world");
        //通过两种方式来遍历Set集合
        //1.普通迭代器
        Iterator<String> it = hs.iterator();
        while (it.hasNext()) {
            String s = it.next();
            System.out.println(s);
        }
        //2.增强for
        for (String s : hs) {
            System.out.println(s);
        }
    }
}

HashSet集合

特点

  1. 底层数据结构是哈希表.
  2. 对集合的迭代顺序不做任何保证,也就是说不保证元素的存取顺序一致.
  3. 没有带索引的方法,所以不能通过普通for进行遍历
  4. 由于是Set集合,所以是不包含重复元素的集合

测试代码

public static void main(String[] args) {
        HashSet<String> hs = new HashSet<>();
        hs.add("hello");
        hs.add("world");
        hs.add("java");
        hs.add("world");
        //遍历HashSet集合
        //1.增强for
        for (String h : hs) {
            System.out.println(h);
        }
        System.out.println("------------------");
        //2.普通迭代器
        Iterator<String> it = hs.iterator();
        while (it.hasNext()) {
            String s = it.next();
            System.out.println(s);
        }
    }