gpt4 book ai didi

java - 将对应的值按降序排列

转载 作者:行者123 更新时间:2023-12-01 19:04:08 25 4
gpt4 key购买 nike

我现在有两组列,但我不确定如何对其进行编程以及使用哪组类。两者都在单独的数组中。一个用于字母,另一个用于数字。

 a  12
b 9
c 156

所以a对应于12,b对应于9等等。该列表实际上是文本文件中字母的频率,所以我有26个。两者不在同一个数组中。因为我对它们都有单独的数组。我想尝试并安排并使它们呈下降的方式。这样输出将是:

 c   156
a 12
b 9

我仍然不确定 ArrayList 或 HashMap 或 Tree Map 的各种功能。那么有什么帮助吗?

最佳答案

import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;

public class Test {

public static void main(String[] args) {

HashMap<String,Integer> map = new HashMap<String,Integer>();
ValueComparator bvc = new ValueComparator(map);
TreeMap<String,Integer> sorted_map = new TreeMap(bvc);

map.put("A",5);
map.put("B",60);
map.put("C",65);
map.put("D",3);

System.out.println("unsorted map");
for (String key : map.keySet()) {
System.out.println("key/value: " + key + "/"+map.get(key));
}

sorted_map.putAll(map);

System.out.println("results");
for (String key : sorted_map.keySet()) {
System.out.println("key/value: " + key + "/"+sorted_map.get(key));
}
}

}

class ValueComparator implements Comparator {

Map base;
public ValueComparator(Map base) {
this.base = base;
}

public int compare(Object a, Object b) {

if((Integer)base.get(a) < (Integer)base.get(b)) {
return 1;
} else if((Integer)base.get(a) == (Integer)base.get(b)) {
return 0;
} else {
return -1;
}
}
}

关于java - 将对应的值按降序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10859884/

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