gpt4 book ai didi

java - 按值对象属性对 LinkedHashMap 键集进行排序

转载 作者:行者123 更新时间:2023-11-30 06:38:26 25 4
gpt4 key购买 nike

我有这个 LinkedHashMap ,其中包含整数索引和值的对象对:

Map<Integer, Paire> population1 = new LinkedHashMap<>();

我的 Paire 类相当简单,如下所示:

 public class Paire {

float valeur;
int index;

public Paire(LinkedList<Sommet> liste, float valeur, int index) {

this.liste = liste;
this.valeur = valeur;
this.index = index;
}

现在我想在 LinkedList 中存储 map 的键集,按类中的浮点值 (valeur) 排序:

List<Integer> selection1 = new LinkedList(population1.keySet());

我知道我可以使用Collection.sort对值进行排序,然后如果这些值是简单的字符串或数字,则追溯它们各自的键,但我在这里有点迷失。我觉得有一些简单而快速的方法可以做到这一点,而无需中间列表和变量。此外,我的代码的执行需要尽可能快(TSP 的遗传算法)。

最佳答案

Collections.sort(selection1, new Comparator<Integer>() {
@Override public int compare(Integer key1, Integer key2) {
return Float.compare(
population1.get(key1).valeur, population1.get(key2).valeur);
}
});

但是,如果您关心速度,LinkedList 永远不是您的 friend 。使用ArrayList

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

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