相关疑难解决方法(0)

Java Map按值排序

我一直在寻找Map<String, Integer>按价值排序的方法.我发现这篇文章解决了我的排序问题,但并不完全正确.根据帖子,我写了以下代码:

import java.util.*;

public class Sort {

    static class ValueComparator implements Comparator<String> {

        Map<String, Integer> base;

        ValueComparator(Map<String, Integer> base) {
            this.base = base;
        }

        @Override
        public int compare(String a, String b) {
            if (base.get(a) >= base.get(b)) {
                return 1;
            } else {
                return -1;
            }
        }
    }

    public static void main(String[] args) {
        HashMap<String, Integer> map = new HashMap<String, Integer>();
        ValueComparator vc = new ValueComparator(map);
        TreeMap<String, Integer> sorted = new TreeMap<String, Integer>(vc);
        map.put("A", 1);
        map.put("B", …
Run Code Online (Sandbox Code Playgroud)

java sorting hashmap treemap comparator

9
推荐指数
1
解决办法
2万
查看次数

如何在java中对MultiMap <k,v>进行排序?

有没有理由在Java中对MultiMap进行排序以及如何做到这一点?

java

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

如何按整数值对哈希映射进行排序

HashMap<String,Integer> map = new HashMap<String,Integer>();
map.put("a", 4);
map.put("c", 6);
map.put("b", 2);
Run Code Online (Sandbox Code Playgroud)

期望的输出(HashMap):

c : 6
a : 4
b : 2
Run Code Online (Sandbox Code Playgroud)

我无法找到任何有关按价值降序的信息.
怎么能实现这一目标?(额外课程不是首选)

java hashmap

8
推荐指数
1
解决办法
3万
查看次数

按值按字母顺序排序HashMap

我有一个HashMap<Object, Student>对象是学生的ID,而学生是学生的对象.

我如何通过学生名称来求助HashMap student->getName()

java sorting collections

7
推荐指数
2
解决办法
3万
查看次数

如何对HashMap freemarker模板的值进行排序

我在java中有这个HashMap:

HashMap<String, String> map = new HashMap<String, String>();

     map.put("k1",  "3");
     map.put("k2", "4");
     map.put("k3", "2");
     map.put("k4", "6");
     map.put("k5", "1");
     map.put("k6", "5");
Run Code Online (Sandbox Code Playgroud)

我在这种模式下使用freemarker模板打印:

<#list map?values as v>
${v} - 
</#list>
Run Code Online (Sandbox Code Playgroud)

但它按此顺序打印:

2 - 6 - 1 - 5 - 3 - 4
Run Code Online (Sandbox Code Playgroud)

我想按此顺序打印:

1 - 2 - 3 - 4 - 5  -6
Run Code Online (Sandbox Code Playgroud)

如何使用freemarker模板对值进行排序?

java freemarker map

7
推荐指数
2
解决办法
7406
查看次数

在哈希映射中获取前10个值

我试图找出如何从中得到前10个值HashMap.我最初尝试使用TreeMap它并按值排序然后取前10个值,但似乎这不是选项,因为TreeMap按键排序.

我想仍然能够知道哪些键具有最高值,K, V即地图的值String, Integer.

java sorting hashmap

7
推荐指数
1
解决办法
2万
查看次数

按整数值desc排序一个hashmap

如何hashmap按整数值排序a ,我找到的答案之一就在这里

Evgeniy Dorofeev撰写,他的回答是这样的

HashMap<String, Integer> map = new HashMap<String, Integer>();
    map.put("a", 4);
    map.put("c", 6);
    map.put("b", 2);
    Object[] a = map.entrySet().toArray();
    Arrays.sort(a, new Comparator() {
        public int compare(Object o1, Object o2) {
            return ((Map.Entry<String, Integer>) o2).getValue().compareTo(
                    ((Map.Entry<String, Integer>) o1).getValue());
        }
    });
    for (Object e : a) {
        System.out.println(((Map.Entry<String, Integer>) e).getKey() + " : "
                + ((Map.Entry<String, Integer>) e).getValue());
    }
Run Code Online (Sandbox Code Playgroud)

产量

c : 6
a : 4
b : 2
Run Code Online (Sandbox Code Playgroud)

我的问题是如何成为描述?如果我想对HashMap Asc进行排序我该怎么做? …

java sorting

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

基于Value然后Key对HashMap进行排序?

可能重复:
如何在Java中的值上对Map <Key,Value>进行排序?

我有一个类型的HashMap:

HashMap<String, Integer> h = new HashMap<String, Integer>();
Run Code Online (Sandbox Code Playgroud)

HashMap包含一个字符串列表,而Integer是一个计数器,用于查找String的次数.我希望能够做的是根据整数对HashMap进行排序,然后按字符串的字母顺序排序.

目前我正在记录一个单词的最大出现(变量名为max)并显示如下值:

public void print(){
    while(max > 0){
       for (String key : h.keySet()){
           if(h.get(key) == max){
               System.out.println(key + " " + h.get(key));
           }
       }
       max--;
    }
}
Run Code Online (Sandbox Code Playgroud)

其中不按字母顺序对值进行排序,也访问HashMap最大*h(大小)次.

什么是更好的解决方案?

java sorting hashtable hashmap

6
推荐指数
2
解决办法
2万
查看次数

在根据值对地图进行排序时,会丢失一些值.是什么导致这种奇怪的行为?

我试图根据词频(即基于值)对地图进行排序.为此,我已经覆盖了比较器并传递给了TreeMap,但我得到了这个奇怪的输出.

public class WordFrequency {
    public static String sentence = "one three two two three three four four four";
    public static Map<String, Integer> map;

    public static void main(String[] args) {
        map = new HashMap<>();
        String[] words = sentence.split("\\s");

        for (String word : words) {
            Integer count = map.get(word);
            if (count == null) {
                count = 1;
            } else {
                ++count;
            }
            map.put(word, count);
        }

        Comparator<String> myComparator = new Comparator<String>() {

            @Override
            public int compare(String s1, String s2) { …
Run Code Online (Sandbox Code Playgroud)

java collections map treemap

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

如何使用键降序对哈希映射进行排序

如何使用键降序对哈希映射进行排序.请举例说明.以及对哈希映射进行排序的方法有多少.请详细说明

java

6
推荐指数
2
解决办法
2万
查看次数

标签 统计

java ×10

sorting ×5

hashmap ×4

collections ×2

map ×2

treemap ×2

comparator ×1

freemarker ×1

hashtable ×1