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添加到队列。

最新文章

  1. VisualCaptcha – 灵活的可视化验证码解决方案
  2. JavaWeb(一)
  3. POJ 1634 Who&#39;s the boss?
  4. 深入理解计算机系统第二版习题解答CSAPP 2.6
  5. sea.js 学习
  6. NetBeans + Xdebug 调试WordPress
  7. 从头开始学JavaScript 笔记(一)——基础中的基础
  8. 常用的几个PHP加密函数
  9. css去除ios文本框默认圆角
  10. 数据安全存放,全民搭建kodexplorer私有云存储
  11. CentOS 7安装MongoDB
  12. n阶方阵的最值问题和对角线的和问题
  13. 完美集群监控组合ganglia和nagios
  14. Java基础——JSON
  15. javascript打印1-100内的质数
  16. 多播委托和匿名方法再加上Lambda表达式
  17. Knockout开发中文API系列1
  18. js里实现给数字加三位一逗号间隔的两种方法
  19. python xml练习:从database.xml文件取databaselist的ip、name、passwd,写入列表
  20. Callable、Future&amp;阻塞队列&amp;阻塞栈

热门文章

  1. python程序的打开运行方式
  2. VirtualBox虚拟机安装
  3. Eclipse中配置使用本地schema或dtd文件
  4. 《杜拉拉升职记》//TODO
  5. day31-hmac模块检测客户端是否合法
  6. 5.redis主从配置
  7. 吴裕雄--天生自然python学习笔记:pandas模块用 dataframe.loc 通过行、列标题读取数据
  8. python往mysql数据库中写入数据和更新插入数据
  9. 使用yum仅下载不安装
  10. HihoCode-1323-回文字符串