HashMap 便利时不按照输入顺序输出
使用:hashmap传输数据时,便利map中的数据时,发现输出的数据和插入的数据顺序不相同,
后来从网上查询了一下发现:HashMap散列图、Hashtable散列表是按“有利于随机查找的散列(hash)的顺序”。并非按输入顺序。遍历时只能全部输出,而没有顺序,
如果希望map中的数据按照插入时的顺序输出时,可以使用 LinkedHashMap 。
实现:
package org.gradle;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
public class MapTest {
public void show(Map<String,Object> param){
Iterator<Entry<String, Object>> it= param.entrySet().iterator();
while(it.hasNext()){
Entry<String, Object> item =it.next();
System.out.println(item.getValue());
}
}
public static void main(String[] args) {
String productId ="ssho";
Double price =9.0;
String id="134566";
Map<String,Object> param = new HashMap<String, Object>();
param.put("productId", productId);
param.put("price", price);
param.put("id", id);
MapTest t = new MapTest();
System.out.println(" HashMap 输出:");
t.show(param);
Map<String,Object> param2 = new LinkedHashMap<String, Object>();
param2.put("productId", productId);
param2.put("price", price);
param2.put("id", id);
System.out.println("LinkedHashMap 输出:");
t.show(param2);
}
}
结果:
HashMap 输出:
id:134566
price:9.0
productId:ssho
LinkedHashMap 输出:
productId:ssho
price:9.0
id:134566
上一篇: 腊八粥的来历和腊八粥的传说
推荐阅读