Person类
public class Person {
private int id;
private String name;
private int scal;
}
main类
HashMap map = new HashMap();
map.put(1, new Person(1, "迪迦", 25900));
map.put(2, new Person(2, "初代", 5900));
map.put(3, new Person(3, "盖亚", 2900));
map.put(4, new Person(4, "戴拿", 19000));
/*第一组 先取出所有的key*//*
Set set = map.keySet(); //取出所有k {1,2,3,4}
*//*1.增for*//*
for (Object sets : set) {
//map.get(sets); 按照k值取出value
Person person = (Person) map.get(sets);//向下转型,取出类里单独的属性
System.out.println(person.getScal());
}
*//*2.迭代器*//*
Iterator itor=set.iterator();
while (itor.hasNext()) {
Object key = itor.next();//先取出所有的k
//map.get(key); 按照k值取出value
Person person = (Person) map.get(key);//向下转型,取出类里单独的属性
System.out.println(person.getScal());
}*/
/* *//*第二组 把所有的value取出*//*
Collection val = map.values();
//1.增for
for (Object vals : val) { //vals就是取出的value值
Person vals1 = (Person) vals;//向下转型,取出类里单独的属性
//System.out.println(vals1.getScal());
}
//2.迭代器
Iterator itor =val.iterator();
while (itor.hasNext()) {
Object values = itor.next();//values就是取出的value值
Person values1 = (Person) values;
Person next = (Person) itor.next();//或者两句合在一起
System.out.println(values1.getScal());
}*/
/*第三组 通过EntrySet*/
Set set = map.entrySet();
//1.增for
for (Object entrykey : set) { //其中entrykey就是获取了k-v
Map.Entry entrykey1 = (Map.Entry) entrykey;//使用Map.Entry,将entrykey类型向map转型,可以获取分别的value和key
entrykey1.getKey();
entrykey1.getValue();
Person persons = (Person) entrykey1.getValue();//向下转型,取出类里单独的属性
// System.out.println(persons.getScal());
}
//2.迭代器
Iterator iterator = set.iterator();
while (iterator.hasNext()) {
Object entryset = iterator.next();//其中entryset就是获取了k-v,依旧存在于HashMap$Node节点中
Map.Entry entryset1 = (Map.Entry) entryset;//使用Map.Entry,将entryset类型向map转型,可以获取分别的value和key
entryset1.getKey();
entryset1.getValue();
Person persons = (Person) entryset1.getValue();//向下转型,取出类里单独的属性
// System.out.println(persons.getScal());
System.out.println(entryset1);
}