package com.day01;import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
import java.util.Map.Entry;;
public class HashMapDemo { /**
 * @param args
 */
public static void main(String[] args) {
HashMap<String,Person> map = new HashMap<String,Person>();
map.put("tom", new Person(1,"张三"));
map.put("jurre", new Person(2,"李四"));
map.put("andy", new Person(3,"闫凯"));
System.out.println(map);
System.out.println(map.containsKey("andy"));
System.out.println(map.containsValue(new Person(1,"张三")));
System.out.println(map.isEmpty());
System.out.println(map.get("Tom"));
System.out.println(map.values());
Set<Entry<String,Person>> entry = map.entrySet();
ArrayList<Entry<String,Person>> list = 
new ArrayList<Entry<String,Person>>(entry);
Collections.sort(list,new Comparator<Entry<String,Person>>(){ @Override
public int compare(Entry<String, Person> o1,
Entry<String, Person> o2) {
return o1.getKey().length()-o2.getKey().length();
}
} );
for(Iterator<Entry<String,Person>> ite = entry.iterator();ite.hasNext();){
Entry<String,Person> ent=ite.next();
String name= ent.getKey();
Person ps= ent.getValue();
System.out.println(name+","+ps);
}
    //利用 key:value对(Entry) 的迭代输出结果
    //在迭代之前要先排序, 在迭代输出
    System.out.println("利用 key:value对(Entry) 迭代输出:");
    //Entry 接口在 Map接口中定义, 代表Map集合中的条目.
    //Map集合可以看作是Entry组成的集合.
    //使用map.entrySet() 方法返回所有Entry组成的Set集合
    //每个元素的类型是 Entry.

}}
class Person{
int id;
String name;
Person(){

}
Person(int id,String name){
super();
this.id =id;
this.name= name;
}
public String toString(){
return id+","+name;
}
}