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

本文介绍了一种利用HashMap实现特定顺序输出的方法。通过设置HashMap的初始容量为1,使得所有元素因Hash冲突而形成链表结构,进而保持元素的插入顺序。文章提供了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值