您的位置:首页 > 移动开发 > Objective-C

Practice Every Day_17(Map集合小练习)

2012-05-08 11:02 381 查看
 

import java.util.Comparator;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Set;

import java.util.TreeMap;

public class MapPractice

{

 public static void main(String[] args)

 {

  TreeMap<Student,String> tm=new TreeMap<Student,String>(new NameComparator());

     tm.put(new Student("wang",34),"北京");

  tm.put(new Student("li",21),"上海");

     tm.put(new Student("wu",19),"潍坊");

     tm.put(new Student("liu",18),"淄博");

     Set<Map.Entry<Student, String>> enSet=tm.entrySet();

     Iterator<Map.Entry<Student, String>> ite=enSet.iterator();

     while(ite.hasNext())

     {

      Map.Entry<Student,String> me=ite.next();

      Student stu=me.getKey();

      String add=me.getValue();

      System.out.println(stu+"..."+add);

     }

 

  HashMap<Student,String> hm=new HashMap<Student,String>();

  hm.put(new Student("wang",34),"北京");

  hm.put(new Student("li",21),"上海");

     hm.put(new Student("wu",19),"潍坊");

     hm.put(new Student("liu",18),"淄博");

    

     //第一种取出方式:keySet

     Set<Student> keySet=hm.keySet();

     Iterator<Student> it=keySet.iterator();

     while(it.hasNext())

     {

     Student stu=it.next();

     String add=hm.get(stu);

     System.out.println(stu+".."+add);

     }

     //第二种取出方式:entrySet

     Set<Map.Entry<Student, String>> entrySet=hm.entrySet();

     Iterator<Map.Entry<Student, String>> iter=entrySet.iterator();

     while(iter.hasNext())

     {

      Map.Entry<Student,String> me=iter.next();

      Student stu=me.getKey();

      String add=me.getValue();

      System.out.println(stu+"..."+add);

     }

    

   

 }

}

class Student implements Comparable<Student>

{

 private String name; 

 private int age;

 Student(String name,int age)

 {

  this.name=name;

  this.age=age;

 }

 public int compareTo(Student s)

 {

   int num=new Integer(this.age).compareTo(s.age) ;

   if(num==0)

    return this.name.compareTo(s.name);

   return num;

 }

 public int hashCode()

 {

  return name.hashCode()+age*34;

 }

 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;

 }

 public int getAge()

 {

  return age;

 }

 public String getName()

 {

  return name;

 }

 public String toString()

 {

  return name+".."+age;

 }

}

class NameComparator implements Comparator<Student>

{

  public int compare(Student s1,Student s2)

  {

   int num=s1.getName().compareTo(s2.getName());

     if(num==0)

   return new Integer(s1.getAge()).compareTo(new Integer(s2.getAge()));

   return num;  

  }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息