Set HashSet

public static void main(String[] args) {

//不可以重复  并且是无序的
  //自然排序  从A-Z
  //eqauls从Object继承,默认比较地址
//  Set<String> set= new HashSet<>();
//  set.add("zs");
//  set.add("ls");
//  set.add("ww");
//  set.add("qq");
//  set.add("zs");
//  System.out.println(set.size());
//  //遍历
  //迭代器
//  Iterator<String > it= set.iterator();
//  while(it.hasNext()) {
//   System.out.println(it.next());
//  }
//  System.out.println("-------------------");
//  //Foreach
//  for(String s: set) {
//   System.out.println(s);
//  }
  
  //常用实现类  HashSet
  Set<Person> s= new HashSet<>();
   //System.out.println(new Person(1,"ls",18).equals(new Person(1,"zs",18)));
   //System.out.println(new Person(1,"zs",18));
  s.add(new Person(1,"zs",18));
  s.add(new Person(2,"ls",18));
  s.add(new Person(3,"ww",18));
  s.add(new Person(4,"zl",18));
  s.add(new Person(5,"qq",18));
  
  //foreach的底层原理就是迭代器
  for(Person p:s) {
   //默认转换为String的数据类型
   System.out.println(p);
  }
  
 }

TreeSet

public static void main(String[] args) {

//常用实现类  TreeSet :根据某种(规则)对里面的元素进行排序
                 //规则1 :java.lang.Comparable
                 //规则2 :java.util.Comparator
//  Set<String> set= new TreeSet<>();
//  set.add("zs");
//  set.add("ls");
//  set.add("ww");
//  set.add("qq");
//  set.add("zs");
//  System.out.println(set.size());
//

遍历

迭代器
//  Iterator<String > it= set.iterator();
//  while(it.hasNext()) {
//   System.out.println(it.next());
//  }
//  System.out.println("-------------------");
//  Foreach
//  for(String s: set) {
//   System.out.println(s);
//  }
  
  //自然排序器
  
//  Set<Person> s= new TreeSet<>();
//   //System.out.println(new Person(1,"ls",18).equals(new Person(1,"zs",18)));
//   //System.out.println(new Person(1,"zs",18));
//  s.add(new Person(1,"zs",18));
//  s.add(new Person(2,"ls",18));
//  s.add(new Person(3,"ww",18));
//  s.add(new Person(4,"zl",18));
//  s.add(new Person(5,"qq",18));
//  
//  //foreach的底层原理就是迭代器
//  for(Person p:s) {
//   //默认转换为String的数据类型
//   System.out.println(p);
//  }
  
  // 自定义的排序器(根据年龄排序)
  Set<Person> s= new TreeSet<>(new Age());
   //System.out.println(new Person(1,"ls",18).equals(new Person(1,"zs",18)));
   //System.out.println(new Person(1,"zs",18));
  s.add(new Person(1,"zs",18));
  s.add(new Person(2,"ls",19));
  s.add(new Person(3,"ww",80));
  s.add(new Person(4,"zl",30));
  s.add(new Person(5,"qq",20));

for(Person p:s) {
   System.out.println(p);
  }
  
 }

转载于:https://www.cnblogs.com/ly-0919/p/10904520.html

Set的常用实现类HashSet和TreeSet相关推荐

  1. 1.4 Set集合:HashSet和TreeSet类

    Set 集合 无序的,不能包含重复的对象 Set 集合类似于一个罐子,程序可以依次把多个对象"丢进"Set 集合,而 Set 集合通常不能记住元素的添加顺序. 也就是说 Set 集 ...

  2. Java集合(5)--Set接口及其实现类HashSet、LinkedHashSet和TreeSet

    文章目录 Set接口概述 HashSet实现类 LinkedHashSet实现类 TreeSet实现类 Set接口概述 1.Set接口是Collection的子接口,set接口没有定义额外的方法,使用 ...

  3. Set 、HashSet、TreeSet、LinkedHashSet、EnumSet

    Set 底层原理: java中set及其子类都是由对应的Map实现的,如HashSet由HashMap实现,TreeSet由TreeMap实现等等. private static final Obje ...

  4. HashSet、TreeSet、TreeMap实现原理

    一.HashSet底层实现 HashSet实现了Set接口,不允许有重复元素,因为HashSet是基于HashMap实现的,HashSet中的元素都存放在HashMap的key上面,而value中的值 ...

  5. 面试官系统精讲Java源码及大厂真题 - 11 HashSet、TreeSet 源码解析

    11 HashSet.TreeSet 源码解析 更新时间:2019-09-16 19:37:35 成功的奥秘在于目标的坚定. --迪斯雷利 引导语 HashSet.TreeSet 两个类是在 Map ...

  6. Java集合框架之四大接口、常用实现类,java基础面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  7. JAVA集合Connection接口和Map接口常用的类及区别

    JAVA集合详解 文章目录 JAVA集合详解 前言 一.集合是什么? 1. 集合类 2.集合和数组的区别: 二.使用步骤 一.Connection接口(单列集合) 1.List和Set的优缺点 2.总 ...

  8. HashSet 与TreeSet和LinkedHashSet的区别

    今天项目开发,需要通过两个条件去查询数据库数据,同时只要满足一个条件就可以取出这个对象.所以通过取出的数据肯定会有重复,所以要去掉重复项. 如果用list集合接收两次的返回对象,那么肯定是有重复对象在 ...

  9. Java.util包中常用的类

    Java.util包 Java.util.ArrayDeque类 Java.util.ArrayList类 Java.util.Arrays类 Java.util.BitSet类 Java.util. ...

最新文章

  1. 阿里1682亿背后的协同研发云——云效公共云正式商业化
  2. tr069相关协议说明
  3. 揭秘任务型对话机器人(下篇)
  4. 查找会议论文的会议地址
  5. Java工具实现无水印批量下载
  6. [hdu2243]考研路茫茫——单词情结(AC自动机+矩阵快速幂)
  7. ffmpeg threads_用ffmpeg命令行转压视频
  8. java使用hashset_JAVA中Set集合--HashSet的使用
  9. java开发web应用开发,Java Web应用开发概述
  10. EMQ X 工业物联网解决方案
  11. ubuntu三行命令更新谷歌浏览器版本
  12. 恢复rm -rf 的数据
  13. 坚果新款 N1 评测
  14. Java斗地主界面实现_通过Java实现斗地主
  15. 简单航班查询系统java_基于jsp的航班信息查询-JavaEE实现航班信息查询 - java项目源码...
  16. DRF--Django RestFramework
  17. 13v/18v与转90度 反极化接收
  18. 常见无线定位技术的基本原理
  19. h5深色模式快速适配背景和字体颜色
  20. python使用正则表达式

热门文章

  1. 看完这篇,你就知道Python生成器是什么
  2. centos build-essential 报错
  3. 排序算法 —— 插入排序
  4. 【Qt】进程间通信之QSharedMemory示例
  5. 【Linux】一步一步学Linux——setfacl命令(117)
  6. 语法制导的翻译是如何实现的_全球化企业应该如何选择机器翻译解决方案?
  7. oracle 值集附加列,EBS值集知识小结
  8. python绘制正态分布函数_学好正态分布有多重要?
  9. beanpostprocessor与@autowired的关系
  10. Navicat导入TXT到数据库