亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

HashSet存儲(chǔ)自定義類型元素

Astrian / 3037人閱讀

摘要:必須重寫和方法存儲(chǔ)自定義類型元素集合報(bào)錯(cuò)元素唯一存儲(chǔ)的元素必須重寫方法和方法要求同名同年齡的人視為同一個(gè)人只能存儲(chǔ)一次創(chuàng)建集合存儲(chǔ)小美女小美女小美女

/*
必須重寫hashCode和toString方法
*/
package com.itheima.demo02.Set;

import java.util.HashSet;

/*

HashSet存儲(chǔ)自定義類型元素

set集合報(bào)錯(cuò)元素唯一:
    存儲(chǔ)的元素(String,Integer,...Student,Person...),必須重寫hashCode方法和equals方法

要求:
    同名同年齡的人,視為同一個(gè)人,只能存儲(chǔ)一次

*/
public class Demo03HashSetSavePerson {

public static void main(String[] args) {
    //創(chuàng)建HashSet集合存儲(chǔ)Person
    HashSet set = new HashSet<>();
    Person p1 = new Person("小美女",18);
    Person p2 = new Person("小美女",18);
    Person p3 = new Person("小美女",19);
    System.out.println(p1.hashCode());//1967205423
    System.out.println(p2.hashCode());//42121758

    System.out.println(p1==p2);//false
    System.out.println(p1.equals(p2));//false
    set.add(p1);
    set.add(p2);
    set.add(p3);
    System.out.println(set);
}

}
package com.itheima.demo02.Set;

import java.util.Objects;

public class Person {

private String name;
private int age;

public Person() {
}

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

@Override
public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;
    Person person = (Person) o;
    return age == person.age &&
            Objects.equals(name, person.name);
}

@Override
public int hashCode() {

    return Objects.hash(name, age);
}

@Override
public String toString() {
    return "Person{" +
            "name="" + name + """ +
            ", 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;
}

}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/75116.html

相關(guān)文章

  • Java編程基礎(chǔ)18——集合(Set集合)

    摘要:并把最終的隨機(jī)數(shù)輸出到控制臺(tái)。方法,在集合中如何存儲(chǔ)元素取決于方法的返回值返回,集合中只有一個(gè)元素。創(chuàng)建集合對(duì)象,傳入比較器。 1_HashSet存儲(chǔ)字符串并遍歷 A:Set集合概述及特點(diǎn) 通過(guò)API查看即可 B:案例演示 HashSet存儲(chǔ)字符串并遍歷 import java.util.HashSet; public class Demo1_HashSet { p...

    SexySix 評(píng)論0 收藏0
  • 1、List接口 2、Set接口 3、判斷集合唯一性原理

    摘要:接口的特點(diǎn)接口的特點(diǎn)它是一個(gè)元素存取有序的集合。導(dǎo)致迭代器并不知道集合中的變化,容易引發(fā)數(shù)據(jù)的不確定性。枚舉已被迭代器替代。集合取出元素的方式可以采用迭代器增強(qiáng)。 01List接口的特點(diǎn) A:List接口的特點(diǎn): ?a:它是一個(gè)元素存取有序的集合。 例如,存元素的順序是11、22、33。那么集合中,元素的存儲(chǔ)就是按照11、22、33的順序完成的)。 ?b:它是一個(gè)帶有索引的...

    gnehc 評(píng)論0 收藏0
  • Collection集合知識(shí)點(diǎn)總結(jié)

    摘要:和的區(qū)別是非線程安全的,效率高是基于線程安全的,效率低底層基于鏈表實(shí)現(xiàn),鏈表內(nèi)存是散亂的,每一個(gè)元素存儲(chǔ)本身內(nèi)存地址的同時(shí)還存儲(chǔ)下一個(gè)元素的地址?;旧隙际且詾榛A(chǔ)。 什么是集合 Java是一門面向?qū)ο蟮恼Z(yǔ)言. 為了方便操作多個(gè)對(duì)象,那么我們就得把這多個(gè)對(duì)象存儲(chǔ)起來(lái) 想要存儲(chǔ)多個(gè)對(duì)象(變量),我們就需要一個(gè)容器 集合就是一個(gè)放數(shù)據(jù)的容器(集合類存放的都是對(duì)象的引用,而非對(duì)象本身) ...

    I_Am 評(píng)論0 收藏0
  • Java集合框架——Set接口

    摘要:如果你知道用集合,就用。在集合中常見(jiàn)的數(shù)據(jù)結(jié)構(gòu)底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組,查詢快,增刪慢底層數(shù)據(jù)結(jié)構(gòu)是鏈表,查詢慢,增刪快底層數(shù)據(jù)結(jié)構(gòu)是哈希表。依賴兩個(gè)方法和底層數(shù)據(jù)結(jié)構(gòu)是二叉樹(shù)。 第三階段 JAVA常見(jiàn)對(duì)象的學(xué)習(xí) 集合框架——Set接口 showImg(https://segmentfault.com/img/remote/1460000019683927?w=700&h=280); Lis...

    Ashin 評(píng)論0 收藏0
  • JDK 是如何判斷兩個(gè)對(duì)象是否相同的?判斷的流程是什么?

    JDK 是如何判斷兩個(gè)對(duì)象是否相同的呢?判斷的流程是什么? 參考解答:JDK 會(huì)先判斷兩個(gè)對(duì)象的hashCode是否相同,如果hashCode不同,則說(shuō)明肯定是兩個(gè)不同的對(duì)象了;如果hashCode相同再通過(guò)equals()方法進(jìn)行進(jìn)一步比較,如果equals方法返回true,則說(shuō)明兩個(gè)對(duì)象是相同的,如果equals方法返回false說(shuō)明兩個(gè)對(duì)象不同。 如何驗(yàn)證 怎么來(lái)驗(yàn)證這個(gè)問(wèn)題呢?我們知道Ha...

    JayChen 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<