首页 > 其他分享 >Set集合-HashSet

Set集合-HashSet

时间:2024-03-14 17:58:23浏览次数:13  
标签:Set name HashSet hs age add Student 集合 public

HsahSet---无序,不可重复

package eight.set.hashset;

import java.util.HashSet;
import java.util.Iterator;

public class Demo01 {
    public static void main(String[] args) {
        //为什么之前重复的字符串没有存进HashSet集合中?
        //String类本身已经重写HashCode()方法和equals()
        HashSet<String> hs = new HashSet<String>();
        hs.add("车次:G4172");
        hs.add("出发站:青岛");
        hs.add("到达站:北京南");
        hs.add("历时时间:4:53");
        hs.add("车票:6车厢3FB");
        hs.add("车票:6车厢3FB");//不能重复
        //HashSet没有下标不能用for循环
        //foreach
        for (String string:hs){
            System.out.println(string);
        }
        //迭代器
        Iterator<String> it = hs.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
        }
    }
}
package eight.set.hashset;

import java.util.Objects;

public class Student {
    private String name;
    private int age;

    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
    //重写equals() 用于在两个元素位置相同的时候比较两个元素是否相等
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Student student = (Student) o;
        return age == student.age && Objects.equals(name, student.name);
    }

    //重写hashCode() 用于获得元素的存储位置
    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }
}
package eight.set.hashset;

import java.util.HashMap;
import java.util.HashSet;

public class Test {
    public static void main(String[] args) {
        //Student类重写HashCode方法和equals方法后不能重复存储
        Student s1 = new Student("龙龙",25);//先计算哈希码值,如哈希码值相等则调用equals方法看属性是否相等
        Student s2 = new Student("壮壮",22);
        Student s3 = new Student("成成",27);
        Student s4 = new Student("成成",27);
        HashSet<Student> hs = new HashSet<>();
        hs.add(s1);
        hs.add(s2);
        hs.add(s3);
        hs.add(s4);
        for (Student student:hs){
            System.out.println(student);
        }

    }
}

标签:Set,name,HashSet,hs,age,add,Student,集合,public
From: https://blog.csdn.net/Anyway_01/article/details/136717421

相关文章

  • L2-005 集合相似度
    法一(暴力超时21分)纯暴力,最后一个测试点超时。#include<bits/stdc++.h>usingnamespacestd;vector<set<int>>dataset;intmain(){ intn; cin>>n; dataset.resize(n+1);for(inti=1;i<=n;i++){ intcount,data; cin>>count; fo......
  • 3-9 集合的划分和覆盖
    3-9集合的划分和覆盖在探索数学的丰富领域中,集合论占据着基础而重要的位置。它不仅是高等数学研究的基石,也深深影响着我们对数据结构和算法的理解。本节将重点介绍集合的两个核心概念:划分和覆盖,它们在数学分析和理论研究中有着广泛的应用。集合的覆盖定义当我们谈论集合......
  • C# EPPlus导出dataset----Excel2绘制图像
    一、生成折线图方法 ///<summary>    ///生成折线图    ///</summary>    ///<paramname="worksheet">sheet页数据</param>    ///<paramname="colcount">总列数</param>    ///<paramname="......
  • (笔记)FPGA多周期路径及set_multicycle_path详解
    默认情况下综合工具会把每条路径定义为单周期路径,即源触发器在时钟的任一边沿启动(launch)的数据都应该由目的触发器在时钟的下一上升沿捕获(capture)。有的设计可能存在时序例外(timingexceptions),如多周期路径、虚假路径等。数据从起点到终点的传输时间需要一个时钟周期以上才能稳定......
  • Git进阶命令-reset
    之前有关Git,写过一片文章:Git五个常见问题及解决方法一、reset命令使用场景有时候我们提交了一些错误的或者不完善的代码,需要回退到之前的某个稳定的版本,面对这种情况有两种解决方法:解决方法1:修改错误内容,再次commit一次解决方法2:使用gitreset命令撤销这一次错误的commi......
  • Edu 12 --- Simple Subset -- 题解 (一个比较巧妙的思维算法题)
    SimpleSubset:题解:  思路解析:    题目要求任意两个数的和为质数,那我们最坏情况就是任意选择一个数,此时子集为最大。    如果子集中有两个奇数或者偶数,他们两个之和一定会被2整除,那么我们只能选择一奇一偶。    如果多个奇数都为1的话,他们两两......
  • STL中的set——洛谷P5250
     1.作用/与优先队列的区别(1)插入一个元素,自动排序,保证其内部元素有序(升序)。优先队列也可以做到这一点。(2)支持任意增删一个元素,而优先队列做不到这一点,这是两者其中一个区别。(3)使用set的前提是唯一键值对,保证了其内部没有重复元素,而优先队列内部同一元素可以有多个,这是两者......
  • Python实战:Python集合的常见操作
    Python集合(set)是一种无序且元素唯一的容器,它是Python中一种基本的数据结构。本文将详细介绍Python集合的常见操作,包括创建集合、添加和删除元素、集合运算、集合推导式等。1.创建集合Python集合可以通过多种方式创建,包括直接赋值、使用内置函数set()和集合推导式等。示......
  • 生物分子体系结构预测开源模型RoseTTAFold All-Atom的conda环境部署及使用
    欢迎浏览我的CSND博客!Blockbuater_drug…点击进入文章目录前言一、RoseTTAFoldAll-Atom(RFAA)是什么?二、安装步骤1.安装mamba(非必须的,conda也可以)2.下载RoseTTAFold-All-Atom3.创建conda环境并安装4.安装SE3T5.准备cs-blast6.安装signalp67.下载序列和模板......
  • 模板匹配——set_shape_model_clutter
    通过设置杂波,来准确定位要检测对象;如下图中未设置杂波情况下,匹配结果如(3);如图(4)设置杂波后,匹配结果如图(5)**Createashapemodel.*创建一个模型read_image(ImageModel,'/bga_gap/bga_gap_01.png')gen_circle(ROI,753.869,551.624,28.4027)reduce_domain(Image......