初见这道题,有点奇怪,后来稍微想了一下,其实了解了HashMap的工作原理就很简单了,因为HashMap本身元素插入顺序是无序的,但是对于Hash冲突的地方是一个链表,链表的加入是放在链头的,其实是个有序的插入顺序,因此只要我们刻意去造成Hash冲突,让HashMap变成一个链表就可以了,其实很简单,只要我们把HashMap 初始化的size设置为1就可以了。
见下面的程序:
package hashmap;
import java.util.HashMap;
import java.util.Map;
/**
*
*<p>Test</p>
*<p>Description:</P>
*<p>Company:Cisco CAS</p>
*<p>Department:CAS</p>
*@Author: Tommy Zhou
*@Since: 1.0
*@Version:Date:2011-5-5
*
**/
public class SortedHashMapTest {
public static void main(String[] args) {
Map<String,String> map = new HashMap<String,String>(1);
map.put("1", "1");
map.put("2", "2");
map.put("3", "3");
Object[] objects = map.keySet().toArray();
for (int i = objects.length-1; i >=0; i--) {
System.out.println(objects[i]);
}
}
}