gpt4 book ai didi

java - 按映射值对字符串列表进行排序

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

我创建了一个 map ,我想按值对其进行排序,但我需要仅将输出作为字符串列表给出。我认为我可以通过扩展可比较来对 map 进行排序,然后将每个排序的键添加到列表中,但我不确定这是最好的方法。有什么想法吗?

//code is not finished yet//
public List<String> search(String prefix) {
Map <String, Integer> suitable_sites = new LinkedHashMap<>() ;
List<String> sorted_list = new ArrayList<>();
for (Map.Entry<String, Site<String>> site :index.entrySet()) {
Map <String, Integer> words = site.getValue().getWords() ;
int counter =0 ;
for (String word : words.keySet()) {
if (word.startsWith(prefix))
counter++;
}
int weight = counter / site.getValue().getAmmount();
if (weight == 0 )
continue;
suitable_sites.put(site.getKey(), weight);
}
return null;
}

最佳答案

    final HashMap<String, Integer> map = new HashMap<String, Integer>();
map.put("abcd",5);
map.put("xyz",152);
map.put("pqr",1);
List list = new ArrayList<String>(map.keySet());

System.out.println("before : "+ list);
Collections.sort(list, new Comparator<String>(){
public int compare(String item1, String item2){
int compare = map.get(item1) - map.get(item2);
if(compare == 0)
{
return (item1.compareTo(item2));
}
return compare;
}
});

System.out.println("after : "+ list);

此代码使用内联比较器。如果值与我们考虑的词法顺序相同。这将在下面打印

before : [pqr, abcd, xyz]

after : [pqr, abcd, xyz]

关于java - 按映射值对字符串列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23341775/

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