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 + "]"; } }
相关文章推荐
- Win7+VS2010环境下OpenCL配置
- Drinks
- 高并发程序设计入门
- hdoj1998 奇数阶魔方(图形打印,找规律)
- KMP算法详解
- extern "c"用法解析
- Servlet_10_获取类路径下的资源
- JVM性能调优
- python的list要打印中文字符
- 数据库扩展属性应用
- Spring声明式事务配置管理方法
- aspv6_index
- iOS 图标上的数字
- Android studio获取数字签名
- 【.ISO】一份2015年的硬盘镜像
- 欢迎使用CSDN-markdown编辑器
- 关于更新pip的心得
- 【小白的CFD之旅】17 需要编程?
- 1060. Are They Equal (25)
- mysql配置文件详解