package Object_Oriented ;
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 String toString ( ) {
return "Person{" +
"name='" + name + '\'' +
", 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) ;
}
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;
}
}
package Object_Oriented ;
import java. util. HashMap ;
import java. util. Iterator ;
import java. util. Map ;
import java. util. Set ;
public class HashMap_Test {
public static void main ( String [ ] args) {
show ( ) ;
}
private static void show ( ) {
Map < Person , String > map = new HashMap < > ( ) ;
map. put ( new Person ( "Lily" , 20 ) , "America" ) ;
map. put ( new Person ( "Bill" , 20 ) , "England" ) ;
map. put ( new Person ( "Leo" , 20 ) , "China" ) ;
map. put ( new Person ( "Halley" , 20 ) , "Greece" ) ;
map. put ( new Person ( "Lily" , 20 ) , "America" ) ;
Set < Map. Entry < Person , String > > set = map. entrySet ( ) ;
for ( Map. Entry < Person , String > personStringEntry : set) {
Person key = personStringEntry. getKey ( ) ;
String value = personStringEntry. getValue ( ) ;
System . out. println ( key) ;
System . out. println ( value) ;
}
}
}