Java哈希映射排序

Java哈希映射排序,java,sortedmap,Java,Sortedmap,可能重复: 我在HashMap中有产品对象列表,我想进行排序 ProductName ProductCode Qty Price Pen 100011 10 10.00 product1 Penci 100012 5 5.00 product2 HashMap<Integer,Product> productMap = new HashMap<I

可能重复:

我在
HashMap
中有产品对象列表,我想进行排序

   ProductName  ProductCode Qty     Price 
   Pen          100011       10     10.00     product1
   Penci        100012        5      5.00     product2

    HashMap<Integer,Product> productMap = new HashMap<Integer,Product>();
如何执行此操作。我要使用object.not键进行排序

请帮帮我


提前感谢

哈希映射未排序,如果需要排序映射,可以使用。或者,您可以获取键集、对其排序、迭代并从HashMap中提取信息,但这是不必要的。

如果您不想频繁访问基于键的值,则不应该使用HashMap。 只需使用一个值列表并实现不同的
比较器
s。然后使用适当的比较器对列表进行排序。

HashMap map=newhashmap()

哈希映射以键、值对的形式存储值。它未同步(意味着它可以作用于多个线程)。hasmap的初始容量为16.5,负载因子为0.75。 初始承载力*荷载系数=16*0.75=12 这意味着在存储第12个密钥值对后,哈希映射大小将加倍

当您使用它的键和值对时,这些值将以无序方式使用

您也可以尝试它(用于排序)--->


}

哈希映射是无序的。人们可以先得到答案,然后再排序。。。不过,也许你会看到。
 I added like this.
 productMap .put(1,product1);
 productMap .put(2,product2);
public LinkedHashMap sortHashMapByValuesD(HashMap passedMap) {
List mapKeys = new ArrayList(passedMap.keySet());
List mapValues = new ArrayList(passedMap.values());
Collections.sort(mapValues);
Collections.sort(mapKeys);

LinkedHashMap sortedMap = 
    new LinkedHashMap();

Iterator valueIt = mapValues.iterator();
while (valueIt.hasNext()) {
    Object val = valueIt.next();
    Iterator keyIt = mapKeys.iterator();

    while (keyIt.hasNext()) {
        Object key = keyIt.next();
        String comp1 = passedMap.get(key).toString();
        String comp2 = val.toString();

        if (comp1.equals(comp2)){
            passedMap.remove(key);
            mapKeys.remove(key);
            sortedMap.put((String)key, (Double)val);
            break;
        }

    }

}
return sortedMap;