Person类:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public Person() {
super();
}
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 "Person "+name+"...."+age;
}
}
测试Demo类:
import java.util.HashMap;
import java.util.Map;
//使用HashMap集合,存储自定义的对象
public class HashMapDemo {
public static void main(String[] args) {
function_1();
function_2();
}
//HashMap 存储自定义的对象Person,作为值出现
//键的对象,是字符串,可以保证唯一性
public static void function_1(){
HashMap<String, Person> map=new HashMap<String, Person>();
map.put("beijing", new Person("a",20));
map.put("shanghai", new Person("b",18));
map.put("guangzhou", new Person("c",19));
//keySet增强for遍历
for(String key:map.keySet()){
Person value=map.get(key);
System.out.println(key+"...."+value);
}
//entrySet增强for遍历
System.out.println("==============================");
for(Map.Entry<String, Person> entry:map.entrySet()){
String key=entry.getKey();
Person value=entry.getValue();
System.out.println(key+"...."+value);
}
}
//HashMap 存储自定义的对象Person,作为值出现
//键的对象,是Person类型,值是字符串
//保证键的唯一性,存储到键的对象,重写hashCode equals
public static void function_2(){
HashMap<Person, String>map=new HashMap<Person, String>();
map.put(new Person("a",20),"里约热内卢");
map.put(new Person("b",18), "索马里");
map.put(new Person("b",18), "索马里");
map.put(new Person("c",19), "百慕大");
//keySet
for(Person key:map.keySet()){
String value=map.get(key);
System.out.println(key+"...."+value);
}
//entrySet
System.out.println("==========================");
for(Map.Entry <Person, String> entry:map.entrySet()){
System.out.println(entry.getKey()+"...."+entry.getValue());
}
}
}