zoukankan      html  css  js  c++  java
  • 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添加到队列。
    

    博客网站 https://yamon.top 个人网站 https://yamon.top/resume GitHub网站 https://github.com/yamonc 欢迎前来访问
  • 相关阅读:
    windows10 + anaconda + tensorflow-1.5.0 + python-3.6 + keras-2.2.4配置和安装
    k-center问题-学习
    交换机+路由器 网络口连接桥接关系示意
    用scp命令来通过ssh传输文件,ssh推送.py程序到CentOS7服务器端出现lost connection错误
    codevs 1519 过路费 最小生成树+倍增
    10.18 noip模拟试题
    poj 3565 ants
    [国家集训队2011]种树 (神贪心~~)
    poj 1821 Fence 单调队列优化dp
    SPFA 小优化*2
  • 原文地址:https://www.cnblogs.com/chenyameng/p/11441474.html
Copyright © 2011-2022 走看看