java集合-set

Posted chenyameng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java集合-set相关的知识,希望对你有一定的参考价值。

#java集合-set

  • Map用于存储key-value的映射,其中key的值是不能重复的。并且还需要正确的覆写equals方法和hashCode方法
  • 如果我们只需要存储不重复的key,并不需要存储对应的value值,就可以使用set
  • set用于存储不重复的元素集合,主要提供以下几种方法:
    • 将元素添加进Set:boolean add(E e)
    • 将元素从Set删除:boolean remove(Object e)
    • 判断是否包含元素:boolean contains(Object e)

1. Set实际上相当于只存储key、不存储value的Map。我们经常用Set用于去除重复元素
2. 原因是:set中的key和map中的key一样,都需要严格的实现equals和hashCode方法,否则无法正确方法set元素
3. Set接口并不保证有序,而SortedSet接口则保证元素是有序的:
    * HashSet是无序的,因为它实现了Set接口,并没有实现SortedSet接口;
    * TreeSet是有序的,因为它实现了SortedSet接口。

技术图片

hashSet的输出:

public class Main 
    public static void main(String[] args) 
        Set<String> set = new HashSet<>();
        set.add("apple");
        set.add("banana");
        set.add("pear");
        set.add("orange");
        for (String s : set) 
            System.out.println(s);
        
    

遍历TreeSet时,输出就是有序的,这个顺序是元素的排序顺序:

public class Main 
    public static void main(String[] args) 
        Set<String> set = new TreeSet<>();
        set.add("apple");
        set.add("banana");
        set.add("pear");
        set.add("orange");
        for (String s : set) 
            System.out.println(s);
        
    

Queue

队列Queue实现了一个先进先出(FIFO)的数据结构:

通过add()/offer()方法将元素添加到队尾;
通过remove()/poll()从队首获取元素并删除;
通过element()/peek()从队首获取元素但不删除。
要避免把null添加到队列。

技术图片

以上是关于java集合-set的主要内容,如果未能解决你的问题,请参考以下文章

廖雪峰Java5Java集合-1Java集合简介-1Java结合简介

java 遍历集合的时候对集合进行操作

java集合是啥?

Java 集合类

Java集合源码剖析Java集合框架

Java集合