A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Dana-乌拉拉 中级黑马   /  2014-11-24 18:24  /  806 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

四、Map集合的两种取出方式

        Map集合的取出原理:将Map集合转成Set集合。再通过迭代器取出。

1、Set<K> keySet():将Map中所以的键存入到Set集合。因为Set具备迭代器。所以可以通过迭代方式取出所以键的值,再通过get方法。获取每一个键对应的值。

示例:

[java] view plaincopy


  • /*
  • 每一个学生都有对应的归属地。
  • 学生Student,地址String。
  • 学生属性:姓名,年龄。
  • 注意:姓名和年龄相同的视为同一个学生。
  • 保证学生的唯一性。
  • 思路:1、描述学生类
  •       2、定义一个Map集合,存储学生对象和地址值
  •       3、获取Map中的元素
  • */  
  •   
  • import java.util.*;  
  •   
  • //描述学生类  
  • class Student implements Comparable<Student>  
  • {  
  •     private String name;  
  •     private int age;  
  •     Student(String name,int age)  
  •     {  
  •         this.name=name;  
  •         this.age=age;  
  •     }  
  •     public String getName()  
  •     {  
  •         return name;  
  •     }  
  •   
  •     public int getAge()  
  •     {  
  •         return age;  
  •     }  
  •   
  •     //复写hashCode  
  •     public int hashCode()  
  •     {  
  •         return name.hashCode()+age*33;   
  •     }  
  •     //复写equals,比较对象内容  
  •     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;  
  •     }  
  •   
  •     //复写compareTo,以年龄为主  
  •     public int compareTo(Student c)  
  •     {  
  •         int num=new Integer(this.age).compareTo(new Integer(c.age));  
  •         if(num==0)  
  •         {  
  •             return this.name.compareTo(c.name);  
  •         }  
  •         return num;  
  •     }  
  •   
  •     //复写toString,自定义输出内容  
  •     public String toString()  
  •     {  
  •         return name+"..."+age;  
  •     }  
  •   
  • }  
  • class  HashMapTest  
  • {  
  •     public static void main(String[] args)   
  •     {  
  •         HashMap<Student,String > hm=new HashMap<Student,String >();  
  •         hm.put(new Student("zhangsan",12),"beijing");  
  •         hm.put(new Student("zhangsan",32),"sahnghai");  
  •         hm.put(new Student("zhangsan",22),"changsha");  
  •         hm.put(new Student("zhangsan",62),"USA");  
  •         hm.put(new Student("zhangsan",12),"tianjing");  
  •   
  •         keyset(hm);  
  •     }  
  •   
  •     //keySet取出方式  
  •     public static void keyset(HashMap<Student,String> hm)  
  •     {  
  •         Iterator<Student> it=hm.keySet().iterator();  
  •   
  •         while(it.hasNext())  
  •         {  
  •             Student s=it.next();  
  •             String addr=hm.get(s);  
  •             System.out.println(s+":"+addr);  
  •         }  
  •     }  
  • }  



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马