package test;import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
// import java.util.TreeMap;public class HashMapTest
{
public static void main(String[] args)
{
HashMap<Integer,String> hm = new HashMap<Integer,String>();
hm.put(1, "liudehua");
hm.put(3, "zhangxueyou");
hm.put(2, "liming");
hm.put(4, "guofucheng");

Iterator<Map.Entry<Integer, String>> it = 
hm.entrySet().iterator();

while(it.hasNext())
{
Map.Entry<Integer, String> m = it.next();
System.out.println(m.getKey()+":"+m.getValue());
// System.out.println(it.next().ge);
}

String str = 
"abcdsafasfdasfasfdasdfasfdsfaf";

Map<Character,Integer> mapCI = new HashMap<Character,Integer>();

for(int i = 1;i<str.length();i++)
{
if(!mapCI.containsKey(str.charAt(i)))
mapCI.put(str.charAt(i), 1);
else
mapCI.put(str.charAt(i),mapCI.get(str.charAt(i))+1);
}

Iterator<Map.Entry<Character, Integer>> it2
= mapCI.entrySet().iterator();

while(it2.hasNext())
{
Map.Entry<Character, Integer> m = it2.next();
System.out.println(m.getKey()+" : " + m.getValue());
}
}
}输出:
1:liudehua
2:liming
3:zhangxueyou
4:guofucheng
f : 8
d : 5
s : 7
b : 1
c : 1
a : 7对数字可以排序,但是对字母无法排序 ??字母的 hashcode 是不是也应该有一个顺序呢 ???

解决方案 »

  1.   

    HashMap不提供对元素进行修改么?????其迭代器可以修改该元素么?
      

  2.   

    数字,那是碰巧,LZ试试这组数字:
            HashMap<Integer,String> hm = new HashMap<Integer,String>();
            hm.put(97, "liudehua");
            hm.put(98, "liming");
            hm.put(99, "zhangxueyou");
            hm.put(100, "guofucheng");当数值比较小的时候,put方法的hash操作,恰好按数值顺序放到散列表里了。