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);
  }
  
 }

Set的常用实现类HashSet和TreeSet的更多相关文章

  1. Java 基础 - Set接口 及其实现类HashSet/LinkedHashSet/TreeSet

    笔记: /**Set接口 及其实现类 * 公用操作同Collection: * * ①size(),clear()②isEmpty(),③contains(),④add()方法 和remove()方法 ...

  2. Java开发笔记(六十五)集合:HashSet和TreeSet

    对于相同类型的一组数据,虽然Java已经提供了数组加以表达,但是数组的结构实在太简单了,第一它无法直接添加新元素,第二它只能按照线性排列,故而数组用于基本的操作倒还凑合,若要用于复杂的处理就无法胜任了 ...

  3. HashSet,TreeSet和LinkedHashSet的区别

    1. Set接口 Set不允许包含相同的元素,如果试图把两个相同元素加入同一个集合中,add方法返回false. Set判断两个对象相同不是使用==运算符,而是根据equals方法.也就是说,只要两个 ...

  4. 算法竞赛中的常用JAVA API :HashSet 和 TreeSet(转载)

    算法竞赛中的常用JAVA API :HashSet 和 TreeSet set set容器的特点是不包含重复元素,也就是说自动去重. HashSet HashSet基于哈希表实现,无序. add(E ...

  5. Java集合框架之四大接口、常用实现类

    Java集合框架 <Java集合框架的四大接口> Collection:存储无序的.不唯一的数据:其下有List和Set两大接口. List:存储有序的.不唯一的数据: Set:存储无序的 ...

  6. 30、Java中Set集合之HashSet、TreeSet和EnumSet

    Set集合是Collection的子集,Set集合与Collection基本相同,没有提供任何额外的方法,只是Set不允许包含重复的元素. Set集合3个实现类:HashSet.TreeSet.Enu ...

  7. Map接口常用实现类学习

    HashMap 1.6的HashMap:数组加单向链表结构 最重要的内部类Entry,全类名是java.util.HashMap.Entry,是个静态类,实现了Map.Entry接口.HashMap. ...

  8. Java集合详解7:一文搞清楚HashSet,TreeSet与LinkedHashSet的异同

    <Java集合详解系列>是我在完成夯实Java基础篇的系列博客后准备开始写的新系列. 这些文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查 ...

  9. List接口和Set接口及其常用实现类概述

    一.List接口 List:有序的 collection(也称为序列).此接口的用户可以对列表中每个元素的插入位置进行精确地控制.用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元 ...

随机推荐

  1. Response知识点小结

    HTTP协议: 1. 响应消息:服务器端发送给客户端的数据 * 数据格式: 1. 响应行 1. 组成:协议/版本 响应状态码 状态码描述 2. 响应状态码:服务器告诉客户端浏览器本次请求和响应的一个状 ...

  2. 二、SpringBoot基础配置

    目录 2.1 @SpringBootApplication 2.3 服务器配置 2.4 修改启动banner 小结 2.1 @SpringBootApplication 从上篇文章中知道@Spring ...

  3. C#特性的学习(一)

    1.预定定义特性之一:AttributeUsage AttributeUsage有三个属性: 第一个属性:ValidOn 规定特性可被放置的语言元素,默认是AttributeTargets.All.

  4. c#自制抽奖小程序

    #region 第一部分界面设计 ; Button button = new Button(); Image[] images = new Image[N]; PictureBox[] picture ...

  5. Flutter Animation AnimatedBuilder

    Flutter AnimatedBuilder 创建动画的widget Key key, @required Listenable animation, @required this.builder, ...

  6. kubernetes第八章--NFS PersistentVolume

  7. js 算法,判断一个数组中的数字出现多少次

    let arr = [11, 11, 2, 2, 5, 5, 5, 5, 3]; //创建一个map,把每个数字和其个数相对应 let countObj = {}; for (i = 0; i < ...

  8. javascript 区域外事件捕捉setCapture

    今天遇到了这个方法,便去度娘了解了下 函数功能:该函数在属于当前线程的指定窗口里设置鼠标捕获.一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内.同一时刻只能有一个窗口捕获鼠标. ...

  9. Java 之 JDBCTemplate

    Spring JDBC Spring 框架是对 JDBC 的简单封装,提供了一个 JDBCTemplate 对象简化 JDBC 的开发. 步骤: 1.导入 jar 包 2.创建 JDBCTemplat ...

  10. 7. Input and Output

    7. Input and Output There are several ways to present the output of a program; data can be printed i ...