小编Pol*_*oli的帖子

使用流按 List<String> 对 Map<String, Integer> 进行排序

Map<String, Integer> nonOrderedData = // {b=1, c=2, d=3, e=4, a=0}
List<String> orderSequence = // a, b, c, d, e
Run Code Online (Sandbox Code Playgroud)

我需要应用顺序序列来获取正确排序的数据,我如何使用(首选)流实现这一点?

我使用的是非流方式:

Map<String, Integer> orderedData = new HashMap<>();
for (Map.Entry<String, Integer> nod : nonOrderedData.entrySet()) {
    for (String os : orderSequence) {
        if (os == nod.getKey()) {
            // add nonOrderedData data
        } else {
            // add data by sequence
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

想要更清洁的方式来实现我想要的。


我注意到在我的方法中我可以只返回new TreeMap<>(nonOrderedData)并且它会工作得很好,但我不想坚持只应用 asc 顺序 - 我想读取实际序列值然后更改nonOrderedData.

java sorting collections treemap java-stream

1
推荐指数
1
解决办法
117
查看次数

标签 统计

collections ×1

java ×1

java-stream ×1

sorting ×1

treemap ×1