public class MapDemo {
public static void main(String[] args) {
HashMap<Student, String> hm = new HashMap<Student, String>();
hm.put(new Student("lisi1", 1), "北京");
hm.put(new Student("lisi2", 2), "上海");
hm.put(new Student("lisi3", 3), "天津");
hm.put(new Student("lisi4", 4), "武汉");
//第一种取出方式 keySet
Set<Student> keySet = hm.keySet();
Iterator<Student> it = keySet.iterator();
while (it.hasNext()) {
Student stu = it.next();
String addr = hm.get(stu);
System.out.println(stu + "--" + addr);
}
//第二种取出方式 entrySet
Set<Map.Entry<Student, String>> entrySet = hm.entrySet();
Iterator<Map.Entry<Student, String>> i = entrySet.iterator();
while (i.hasNext()) {
Map.Entry<Student, String> stu = i.next();
System.out.println(stu.getKey() + "--" + stu.getValue());
}
}
}
class Student implements Comparable<Student> {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object obj) {
if (!(obj instanceof Student))
throw new ClassCastException("类型不匹配");
Student s = (Student) obj;
return this.name.equals(s.name) && this.age == s.age;
}
@Override
public int hashCode() {
return name.hashCode() + age * 34;
}
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 +
'}';
}
@Override
public int compareTo(Student o) {
int num = new Integer(this.age).compareTo(new Integer(o.age));
if (num == 0) {
return this.name.compareTo(o.name);
}
return num;
}
}
java 关于Map的基本使用
最新推荐文章于 2022-06-02 14:26:19 发布