读书人

HashMap里安插数字一到十然后再逐个

发布时间: 2012-12-25 16:18:29 作者: rapoo

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]);
??????? }
??? }
}

读书人网 >编程

热点推荐