1. 程式人生 > 其它 >java《set集合新增物件》

java《set集合新增物件》

技術標籤:javajava

在hashSet集合中新增三個person物件,把姓名相同的人當做同一個人,禁止重複新增
person類中定義name和age屬性,重寫hashCode()方法和equals()方法。

package test1;
import java.text.*;
import java.util.*;
public class Main {
    public static void main(String[] args) {
                HashSet hashSet = new HashSet();
                Person p1 =
new Person("Jack",25); Person p2 = new Person("Rose",23); Person p3 = new Person("Jack",27); hashSet.add(p1); hashSet.add(p2); hashSet.add(p3); for(Object obj:hashSet) { Person p =
(Person) obj; System.out.println(p.name + ":" + p.age); } } } class Person{ String name; int age; public Person(String name, int age) { super(); this.name = name; this.age = age; } public int hashCode() { return
name.hashCode(); } //重寫equals方法中傳入物件的過載方法 public boolean equals(Object obj) { //地址相同表示是同一個物件 if (this == obj) { return true; } //傳入的物件為空不是同一個物件 if (obj == null) { return false; } //判斷傳入的物件和該類是不是同一個物件 if(!(obj instanceof Person)){ return false; } //把object型別轉換為person型別 Person p = (Person) obj; //比較兩個物件的屬性值是否相等 if(p.name.equals(this.name)){ //如果要比較多個屬性值可以使用if巢狀if return true; } //預設返回false return false; } }