博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java hashMap和linkedMap的区别
阅读量:5872 次
发布时间:2019-06-19

本文共 1617 字,大约阅读时间需要 5 分钟。

hot3.png

HashMap是无序的,HashMap在put的时候是根据key的hashcode进行hash然后放入对应的地方。所以在按照一定顺序put进HashMap中,然后遍历出HashMap的顺序跟put的顺序不同(除非在put的时候key已经按照hashcode排序号了,这种几率非常小)

单纯的HashMap是无法实现排序的,这的排序是指,我们将键值对按照一定的顺序put进HashMap里,然后在进行取键值对的操作的时候,是按照put进去的顺序把键值对取出来的。

JAVA在JDK1.4以后提供了LinkedHashMap来帮助我们实现了有序的HashMap

LinkedHashMap取键值对时,是按照你放入的顺序来取的。

EG:

import java.util.HashMap;

import java.util.Iterator;

import java.util.LinkedHashMap;

import java.util.Map;

import java.util.Map.Entry;

/**

 *  TEANA E-mail: mmz06@163.com

 *  创建时间:2011-1-21 下午02:23:07

 *        LinkedHashMap与HashMap 

 */

public class LinkedMap

{

    public static void main(String[] args)

    {

        //LinkedHashMap 有序

        Map maps = new LinkedHashMap();

        maps.put("1", "张三");

        maps.put("2", "李四");

        maps.put("3", "王五");

        maps.put("4", "赵六");

        System.out.println("LinkedHashMap(有序):");

        Iterator it = maps.entrySet().iterator();

        while(it.hasNext())

        {

            Map.Entry entity = (Entry) it.next();

            System.out.println("[ key = " + entity.getKey() +

                    ", value = " + entity.getValue() + " ]");

        }

        //HashMap 无序

        Map map = new HashMap();

        map.put("1", "张三");

        map.put("2", "李四");

        map.put("3", "王五");

        map.put("4", "赵六");

        it = null;

        System.out.println("HashMap(无序):");

        it = map.entrySet().iterator();

        while(it.hasNext())

        {

            Map.Entry entity = (Entry) it.next();

            System.out.println("[ key = " + entity.getKey() +

                    ", value = " + entity.getValue() + " ]");

        }

    }

}

执行结果如下:

LinkedHashMap(有序):

[ key = 1, value = 张三 ]

[ key = 2, value = 李四 ]

[ key = 3, value = 王五 ]

[ key = 4, value = 赵六 ]

HashMap(无序):

[ key = 3, value = 王五 ]

[ key = 2, value = 李四 ]

[ key = 1, value = 张三 ]

[ key = 4, value = 赵六 ]

转载于:https://my.oschina.net/qimhkaiyuan/blog/783579

你可能感兴趣的文章
Redis的缓存策略和主键失效机制
查看>>
禁止body滚动允许div滚动防微信露底
查看>>
Xtreme8.0 - Kabloom dp
查看>>
jquery css3问卷答题卡翻页动画效果
查看>>
MDK5.00中*** error 65: access violation at 0xFFFFFFFC : no 'write' permission的一种解决方法
查看>>
Android 集成支付宝支付详解
查看>>
SQL分布式查询、跨数据库查询
查看>>
C#------连接SQLServer和MySQL字符串
查看>>
Arcgis Licensemanager 不能启动的原因之一(转载)
查看>>
MySQL缺失mysql_config文件
查看>>
(原)Android在子线程用handler发送的消息,主线程是怎么loop到的?
查看>>
$digest already in progress 解决办法——续
查看>>
Spring 4 官方文档学习(十一)Web MVC 框架之resolving views 解析视图
查看>>
虚拟机 centos设置代理上网
查看>>
Struts2中Date日期转换的问题
查看>>
mysql 数据类型
查看>>
Ubuntu 设置当前用户sudo免密码
查看>>
索引的作用?为什么能够提高查询速度?(索引的原理)
查看>>
设置tomcat远程debug
查看>>
C#微信公众号开发--网页授权(oauth2.0)获取用户基本信息一
查看>>