按map值对字符串列表进行排序

BK墨粉

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

//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;
}
niiraj874u
    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);

这段代码使用内联比较器。如果值与我们认为的词法顺序相同,则将在下面显示

之前:[pqr,abcd,xyz]

之后:[pqr,abcd,xyz]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

按整数列表对字符串列表进行排序

按字符对字符串列表进行排序

在Java中按字符对字符串列表进行排序

按长度对字符串列表进行排序

如何按字母顺序对字符串列表进行排序?

按多个参数对字符串列表进行排序

按降序对字符串列表进行自然排序

Dart:按频率对字符串列表进行排序

按数字部分的顺序对字符串列表进行排序

按索引对字符串列表进行排序

如何按多种条件对字符串列表进行排序

按出现频率对(嵌套的)字符串列表进行排序

如何按最高编号对字符串列表进行排序

按降序对字符串列表进行排序(根据长度)

按字母顺序对字符串列的每个值进行排序

按数字排序字符串列表

按字符串长度降序对字符串列表进行排序,请勿更改列表

按字符串长度降序对字符串列表进行排序,不会更改列表

如何对字符串列表进行排序

如何对字符串列表进行排序?

按字符串的一部分对字符串列表进行排序

使用lambda函数按两个子字符串对字符串列表进行排序

Python:如何按子字符串相关性对字符串列表进行排序?

按字符串长度对字符串列表进行排序

按Java中最常见字符的顺序对字符串列表进行排序

如何按某个字符的数量对字符串列表进行排序?

按子字符串排序字符串列表

根据给定映射中字符串的值对字符串列表进行排序

无法在C中按字母顺序对字符串列表进行排序