当前位置: 首页 > 面试题库 >

在java中如何根据value排序一个map?

万俟浩
2023-03-14
问题内容

在java中如何根据value排序一个map?例如Map<Key, Value> 根据Value排序


问题答案:

通用的版本:

public class MapUtil {
    public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue(Map<K, V> map) {
        List<Entry<K, V>> list = new ArrayList<>(map.entrySet());
        list.sort(Entry.comparingByValue());

        Map<K, V> result = new LinkedHashMap<>();
        for (Entry<K, V> entry : list) {
            result.put(entry.getKey(), entry.getValue());
        }

        return result;
    }
}


 类似资料:
  • 我看到过其他几个类似于这个问题的问题,但我还没有找到任何解决我的问题的方法。

  • 问题内容: 我在找出根据一个列表的排序顺序对多个列表进行排序的最佳方法时遇到了麻烦。当前,列表是根据其索引排序的。离职时间列表以(00:00 AM / PM)格式保存时间字符串。它们是这样初始化的: 我需要根据发车时间ArrayList中发车时间的排序顺序对所有列表进行排序。在不更改结果数据结构的情况下对这些列表进行排序的最佳方法是什么。任何协助将不胜感激。 谢谢, 马特 问题答案: 如评论中所述

  • 我正在解决一个问题“编写一个名为splay的函数,根据第一个值重新组织列表。第一个值称为splaymaster。该函数将重新排列列表,使splaymmaster之前的所有值都小于或等于splaymast,之后的所有值均大于splaymMaster。该函数还返回列表被重新排列。例如,如果列表为[8,15,4,48,26,45,18,29,2,1],函数将重新排列为[2,1,4,8,26,4518,2

  • 我正在尝试使用Java对由整数对字符串组成的数组进行排序 输入为: 所需的输出是:

  • 我检查了许多示例,但我不知道如何实现比较器或其他方法来解决我的问题。我试图清楚地解释我的问题。我有一个arrayList如下:我的Datamodel包括一个int作为id和一个String作为每个对象的名称; 我的第二个Arraylist还包括一个包含更多项的数据模型,但它还包括First Arraylist的值,如下所示: 现在我想根据firstArrayList(值顺序)对第二个arrayLi

  • 问题内容: 我有多个数组,我想根据其中一个的排序顺序对所有数组进行排序,如下所示: 我希望函数执行后,数组将如下所示: 问题答案: 您可以执行以下操作:首先根据键控数组的索引的索引对它们进行索引的值对它们进行排序,然后使用: 如果要在任何类型的集合上使它通用(但仍以与std lib集合算法相同的样式返回数组): 以及带有自定义比较器的版本: