1. 如果我们只需要存储不重复的key,并不需要存储映射的value,那么就可以使用Set
    2. Set用于存储不重复的元素集合,它主要提供以下几个方法:
    • 将元素添加进Set<E>boolean add(E e)
    • 将元素从Set<E>删除:boolean remove(Object e)
    • 判断是否包含元素:boolean contains(Object e)
    1. 因为放入Set的元素和Map的key类似,都要正确实现equals()hashCode()方法,否则该元素无法正确地放入Set
    2. 最常用的Set实现类是HashSet,实际上,HashSet仅仅是对HashMap的一个简单封装。Set接口并不保证有序,而SortedSet接口则保证元素是有序的:
    • HashSet是无序的,因为它实现了Set接口,并没有实现SortedSet接口;
    • TreeSet是有序的,因为它实现了SortedSet接口。

    image.png

    1. public class Main {
    2. public static void main(String[] args) {
    3. Set<String> set = new TreeSet<>();
    4. set.add("apple");
    5. set.add("banana");
    6. set.add("pear");
    7. set.add("orange");
    8. for (String s : set) {
    9. System.out.println(s);
    10. }
    11. }
    12. }

    使用TreeSet和使用TreeMap的要求一样,添加的元素必须正确实现Comparable接口,如果没有实现Comparable接口,那么创建TreeSet时必须传入一个Comparator对象。