gpt4 book ai didi

java - 按对象的属性对 map 进行排序

转载 作者:行者123 更新时间:2023-12-02 03:35:13 25 4
gpt4 key购买 nike

免责声明:我已经发布过一次这样的问题,它被标记为重复。请尝试帮助我。我已经在 stackoverflow 上浏览了所有以前的方法,但没有任何帮助。提到的所有排序 Map(Key,Values) 的方法在我的情况下都不起作用,因为我还有一步,即检索值的属性。这一次,我尝试了完整的细节。

我在 Java 中有一个 Map (String,Object),我想使用对象的一个​​属性对其进行排序。

例如假设我有一个类

class Entry
{
int id;
String name;
String address;
//Rest of the code
}

现在,我创建了一个 map

 Map<String,Entry>

我想通过类Entry(Entry.id)的属性id对 map 进行排序

请帮忙!

比如我有三个Entry类的对象

entry1 :
id=1
name="abc"
address="india"
entry2 :
id=2
name="xyz"
address="india"
entry3 :
id=3
name="pqr"
address="india"

现在,我最初的 map 如下:

Key :   Value
first: entry2
second: entry3
third : entry1

排序后应该是这样的

Key :   Value
third : entry1
first: entry2
second: entry3

最佳答案

您可以使用流 API 轻松完成任务:

Map<String, Entry> resultSet = myMap.entrySet()
.stream()
.sorted(Comparator.comparingInt(e -> e.getValue().getId()))
.collect(Collectors.toMap(Map.Entry::getKey,
Map.Entry::getValue,
(left, right) -> left,
LinkedHashMap::new));

关于java - 按对象的属性对 map 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50453256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com