| 四、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);          }      }  }  
 
 
 
 |