HashMap里插入数字一到十,然后再逐个取出来

初见这道题,有点奇怪,后来稍微想了一下,其实了解了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]);
        }
    }
}

你可能感兴趣的:(编程,工作,Cisco)