www.qcfz.net > jAvA 的 HAshMAp输出顺序的问题

jAvA 的 HAshMAp输出顺序的问题

额。。我记得早上我回答过了呀。。 HashMap输出的无序的,因为哈希算法存值和取值的时候没有顺序性。 想做到先进先出,之类的顺序。要用 LinkedHashMap 或TreeMap

第一种:能顺序遍历就用ArrayList第二种:先把hashMap的key 拿出来 然后把key 排序,通过HashMap的get(String key) 方法取出值 就好了

这是偶然的,你用稍微复杂的数据测一下,肯定是无序的

import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; public class Demo{ public static void main(String[] args) { Map m = new HashMap(); m.put("001","张三"); m.put("005","李四"); m.put...

既然用到了HashMap也就不需要元素的加入顺序了 hashmap是通过元素名来取得元素值的,如若非要加个顺序的话那就 把元素名从1开始命名然后按照顺序取就是了 不过麻烦在于移除了某个数值后不能的到连续的数值顺序了

map只是一个接口,他的实现类中 HashMap是无序的(只是说不是你插入时的顺序); LinkedHashMap是有序的(按你插入的顺序); TreeMap 是按key排序的; HashMap 类基本上等同于 Hashtable, 区别仅仅在于: HashMap 不是同步的,并且运行 null 值.。

hashmap.put(key,newvalue); 这样就改变了值,hashmap可以理解为无序的,不必考虑顺序问题

LinkedHashMap是有序的

hashmap是没有顺序的,有顺序的一般没人这么用的,都是通过list来进行确定顺序的对象添加的。因为list是有顺序的,先add的编号就小(从0开始),举例: List list = new linkedList(); list.add("0"); list.add("1"); 结果就是:list.get(1) =1;

containsKey的复杂度是O(1),它是直接根据给定的参数key来计算hashcode,看看相关位置上是否有。如果相关位置已被占用,就继续寻找下一个位置。下面是JDK实现containsKey的主要代码: int hash = hash(k); int i = indexFor(hash, table.length)...

网站地图

All rights reserved Powered by www.qcfz.net

copyright ©right 2010-2021。
www.qcfz.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com