OddFar's Notes OddFar's Notes
首页
  • Java-Se

    • Java基础
    • Java面向对象
    • Java常用类
    • Java集合框架
  • Java-Se进阶

    • JUC多线程
  • Java-ee

    • JavaWeb
  • SQL 数据库

    • MySQL
  • NoSQL 数据库

    • Redis
    • ElasticSearch
    • MongoDB
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • Spring

    • Spring
  • 中间件

    • RabbitMQ
  • Git
  • Docker
  • Jenkins
爬虫
  • Campus (opens new window)
  • 校园信息墙 (opens new window)
关于
归档
GitHub (opens new window)
首页
  • Java-Se

    • Java基础
    • Java面向对象
    • Java常用类
    • Java集合框架
  • Java-Se进阶

    • JUC多线程
  • Java-ee

    • JavaWeb
  • SQL 数据库

    • MySQL
  • NoSQL 数据库

    • Redis
    • ElasticSearch
    • MongoDB
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • Spring

    • Spring
  • 中间件

    • RabbitMQ
  • Git
  • Docker
  • Jenkins
爬虫
  • Campus (opens new window)
  • 校园信息墙 (opens new window)
关于
归档
GitHub (opens new window)
  • java-基础

  • java-面向对象

  • Java-常用类

  • Java-集合框架

    • 集合概序
    • ArrayList
    • LinkedList
    • Vevtor和Stack
    • List总结
    • HashMap
    • set
      • Set
    • HashSet
    • TreeSet
    • 迭代器
    • 泛型
    • Collections工具类
  • Java-多线程

  • JavaWeb

  • Java
  • Java-集合框架
zhiyuan
2021-04-16
目录

set

# Set

Set注重独一无二的性质,该体系集合可以知道某物是否已经存在于集合中,不会存储重复的元素,用于存储无序**(存入和取出的顺序不一定相同)**元素,值不能重复

对象的相等性: 引用到堆上同一个对象的两个引用是相等的。如果对两个引用调用hashcode方法,会得到相同的结果,如果对象所属的类没有覆盖object的hashcode方法的话,hashcode会返回每个对象特有的序号(java是依据对象的内存地址计算出的此序号),所以两个不同的对象的hashcode值是不可能相等的。

如果想要让两个不同的Person对象视为相等的,就必须覆盖Object继承下来的hashcode方法和equals方法,因为Object hashcode返回的是该对象的内存地址,所以必须重写hashcode方法,才能保证两个不同的对象具有相同的hashcode,同时也需要两个不同对象比较equals方法返回true。

该集合中没有特有的方法,直接继承自Collection

/**
 * Collection
 *      \--List
 *          有序(存储顺序和取出顺序一致),可重复
 *      \--Set
 *          无序(存储顺序和取出顺序不一致),唯一
 * HashSet:它不保证set的迭代顺序;特别是它不保证该顺序恒久不变
 * 注意:虽然set集合的元素无序,但是,作为集合来说,它肯定有它自己的存储顺序,
 * 而你的顺序恰巧和它的存储顺序一致,这代表不了有序,你可以多存储一些数据就能看到效果
 **/
1
2
3
4
5
6
7
8
9
10

案例:set集合添加元素并使用增强for循环遍历

public static void method1() {
    Set<String> set = new HashSet<>();
    set.add("1");
    set.add("5");
    set.add("2");

    set.add("5");//重复的不会添加进去
    for (String s : set) {
        System.out.println(s);
    }
}
1
2
3
4
5
6
7
8
9
10
11

最后输出顺序是: 1、2、5

在 GitHub 上编辑此页 (opens new window)
最后更新: 2021/05/26, 10:05:00
HashMap
HashSet

← HashMap HashSet→

Theme by Vdoing | Copyright © 2021-2023 oddfar | 冀ICP备20001094号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式