通过排序对对象中的值进行排序? [复制]

Posted

技术标签:

【中文标题】通过排序对对象中的值进行排序? [复制]【英文标题】:Sorting values in objects by putting order? [duplicate] 【发布时间】:2020-09-10 06:21:40 【问题描述】:

说有一个清单,我在里面加了一些东西:

list.add(new Stuff("Test1"))
list.add(new Stuff("Test2"))
list.add(new Stuff("Test3"))
list.add(new Stuff("Test4"))
list.add(new Stuff("Test5"))

如果我像这样把它放在哈希图中:

private static HashMap<Integer, Report> hashMap = new HashMap<>();

public static void getStuffs(Stuff stuff) 

        int hashCode = stuff.hashCode();

        if (!hashMap.containsKey(hashCode)) 
            hashMap.put(hashCode, stuff);
        
    

当我打印存储在 hashMap 中的值时,预期的输出是:

Test1
Test2
Test3
Test4
Test5

但它实际上以奇怪的顺序存储在hashMap中。

谁能告诉我如何解决这个问题?

我试过了

【问题讨论】:

【参考方案1】:

使用LinkedHashMap 而不是HashMap。您也可以从文档中了解到,HashMapLinkedHashMap 之间的主要区别在于 LinkedHashMap 维护键的插入顺序(即键插入 LinkedHashMap 的顺序),而 @ 987654329@ 不维护任何键的顺序。

【讨论】:

以上是关于通过排序对对象中的值进行排序? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何按对象中的值对数组进行排序

根据另一个地图中的值对Java Map进行排序

如何通过D3.js中的JSON文件解析按键对对象进行排序[重复]

Map对象在JS中排序显示

如何根据特定行中的值对 numpy 数组进行排序?

使用 Jquery Datatables 对数据排序属性中的值进行自定义排序