您的位置:首页 > 其它

Map集合的多种遍历

2016-02-26 15:42 253 查看
import java.util.Collection;
import java.util.Comparator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;

public class MapDemo {
public static void main(String[] args) {

Map<Student,String> map = new TreeMap<Student,String>(new Comparator<Student>(){    //使用匿名内部类比较器

@Override
public int compare(Student o1, Student o2) {
int temp = o1.getId().compareTo(o2.getId());//先比较ID,

if(temp == 0){
temp = o1.getAge() - o2.getAge();//ID相等再比较年龄
}
if(temp == 0){
temp = o1.getName().compareTo(o2.getName());//年龄相等再比较姓名
}
return temp;//同ID,同年龄,同姓名则表示同一个人,即返回0
}
});

Student stu1 = new Student("001","zhangsan",13);
Student stu2 = new Student("002","lisi",18);
Student stu3 = new Student("003","wangwu",20);
Student stu4 = new Student("004","xiaoming",16);
Student stu5 = new Student("005","laowang",19);

map.put(stu1, stu1.getId());
map.put(stu2, stu2.getId());
map.put(stu3, stu3.getId());
map.put(stu4, stu4.getId());
map.put(stu5, stu5.getId());

//通过keySet方法,获取键的集合
Set<Student>set = map.keySet();
for(Student key : set){
String value = map.get(key);

System.out.println("key = " + key + "................value = " + value );
}
System.out.println("*************************************************");

//通过entrySet方法,获取键和值
Set<Entry<Student, String>> entrySet = map.entrySet();
for(Entry<Student,String> en : entrySet){
Student key = en.getKey();
String value = en.getValue();
System.out.println("key = " + key + "................value = " + value);
}
System.out.println("*************************************************");

//通过values()获取值的集合。
Collection<String>col = map.values();
for(String str : col){
System.out.println(str);
}
}
}


学生测试类:

public class Student{
private String Id;
private String name;
private int age;
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student(String id, String name, int age) {
super();
Id = id;
this.name = name;
this.age = age;
}

public String getId() {
return Id;
}
public void setId(String id) {
Id = id;
}
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 [Id=" + Id + ", name=" + name + ", age=" + age + "]";
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: