相关疑难解决方法(0)

按值对地图<键,值>进行排序

我是Java的新手,经常发现我需要对Map<Key, Value>值进行排序.

由于值不是唯一的,我发现自己将其转换keySet为a array,并通过数组排序对该数组进行排序,并使用自定义比较器对与键关联的值进行排序.

有没有更简单的方法?

java sorting collections dictionary

1569
推荐指数
27
解决办法
134万
查看次数

Java如何根据HashMap中的值返回前10个项目

所以我是Java的新手,因此我正在通过练习,将我的一个Python程序转换为Java.

我遇到了一个问题,我试图复制行为,从python下面将只返回排序的键(按值),而不是值:

popular_numbers = sorted(number_dict, key = number_dict.get, reverse = True)
Run Code Online (Sandbox Code Playgroud)

在Java中,我做了一些研究,还没有找到一个简单的样本用于n00b,例如我自己或类似的方法.我找到了使用Guava进行排序的示例,但排序似乎返回按键排序的HashMap.

除了上述之外,我在Java中没有找到的关于Python的其他好处之一是能够轻松返回已排序值的子集.在Python中,我可以简单地执行以下操作:

print "Top 10 Numbers: %s" % popular_numbers[:10]
Run Code Online (Sandbox Code Playgroud)

在此示例中,number_dict是键值对的字典,其中键表示数字1..100,值是数字(键)出现的次数:

for n in numbers:
 if not n == '':
   number_dict[n] += 1
Run Code Online (Sandbox Code Playgroud)

最终结果将是这样的:

十大数字:['27','11','5','8','16','25','1','24','32','20']

为了澄清,在Java中我成功创建了一个HashMap,我已经成功检查了数字并增加了键值对的值.我现在陷入了排序并根据值返回前10个数字(键).

java sorting

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

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

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万
查看次数

使用 Java 按 HashMap 类中的值排序

我正在尝试获取按值排序的结果 HashMap。

这是 HashMap 的键和值:

map.put("ertu", 5);
map.put("burak", 4);
map.put("selin", 2);
map.put("can", 1);
Run Code Online (Sandbox Code Playgroud)

我试图得到这样的结果:

1 = can
2 = selin
4 = burak
5 = ertu
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

import java.util.*;

public class mapTers {

    public static void main(String[] args) {

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

        map.put("ertu", 5);
        map.put("burak", 4);
        map.put("selin", 2);
        map.put("can", 1);

        Integer dizi[] = new Integer[map.size()];

        Set anahtarlar = map.keySet();

        Iterator t = anahtarlar.iterator();

        int a = 0;

        while (t.hasNext()) {
            dizi[a] = map.get(t.next());
            a++;
        }

        Arrays.sort(dizi); …
Run Code Online (Sandbox Code Playgroud)

java sorting collections hashmap map

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

Java中计算字符串中字母的程序

我必须创建一个程序来计算字符串中的字母,但我对此有点问题。

这是我的代码main

Scanner sc = new Scanner(System.in);
String str;
int count;

System.out.println("Enter some text: ");
str = sc.nextLine();

char ch;

System.out.println("Letters: ");
for (ch = (char) 65; ch <= 90; ch++) {
    count = 0;
    for (int i = 0; i < str.length(); i++) {
        if (ch == str.charAt(i) || (ch + 32) == str.charAt(i)) {
            count++;
        }
    }
    if (count > 0) {
        System.out.println(ch + ": " + count);
    }
}
Run Code Online (Sandbox Code Playgroud)

一切看起来都很好,但输出不应按字母顺序排列,而应按字母数降序排列。

例如,如果你输入 …

java

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

在java中使用int排序ArrayList <String>

我想用java出现ArrayList<String>的次数在java中排名.像这样:如果我有

ArrayList<String>= [French, English, German, French, French, Belgium, English, Belgium]

我计算"French", "English", "Belgium",etc.出现的数字.法语出现3次,英语2次,比利时2次,德语1次.然后我想对ArrayList<String>数字的函数进行排名.

结果将是:

French 3
English 2 
Belgium 2
German 1
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做?如何关联整数和字符串?

java string integer

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

在已排序的 HashMap 中选择前“n”个条目

我已经在此处查看了按值对 HashMap 进行排序但我不太确定如何提取此已排序 HashMap 的前“n”个条目。或者有没有更好的方法来实现这一点?

为了提供一些概述,我正在处理一个 P2P 项目,并且我维护了 peerID 和可以从每个对等点下载文件的相应速率之间的映射。然后我需要选择下载率最高的前“n”个对等点。

java sorting hashmap

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

对HashSets集合进行排序

如果这是重复,我道歉,但我找不到任何具体回答这一特定问题的答案.

我有一个HashMap,其中包含一个与Set值配对的字符串键.我想根据集合的长度对地图中的值进行排序.考虑:

HashMap<String, Set<String>> myMap;
Run Code Online (Sandbox Code Playgroud)

包含:

{"A", {"Dukmerriot", "King", "Pumpkin"}}  
{"B", {"Steve"}}
{"C", {"Jib", "Jab", "John", "Julie"}}
{"D", {"Apple", "Amy", "Unicorn", "Charlie", "Raptor"}}
{"E", {}}
Run Code Online (Sandbox Code Playgroud)

我希望能够有效地获得列表{"D", "C", "A", "B", E"}(从最大到最小指定集合的​​顺序)myMap.

除了创建一个实现Set和覆盖compareTo方法的包装类之外,有没有办法根据它们的长度对一组集合进行排序?

编辑:我应该指定我不需要使用HashMap来维护这个集合.我可以使用TreeMap或其他东西,但我不确定这是否可能,因为Set没有实现Comparable.

java sorting hashmap

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

获取Hashmap前3个键

我有一个hashmap存储文本中出现的字符数.我正在尝试打印前三次出现,但打印不正确.

int max = 1000000000;
for (int i = 1; i <= 3; i++) {
    for (Character key : list.keySet()) {
        if (list.get(key) < max) {
            max = list.get(key);
            System.out.println(i + ": " + key + " " + list.get(key));
            break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java foreach integer character hashmap

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

标签 统计

java ×9

hashmap ×5

sorting ×5

collections ×2

integer ×2

character ×1

dictionary ×1

foreach ×1

map ×1

string ×1