gpt4 book ai didi

java - 在android中对 map 进行排序

转载 作者:行者123 更新时间:2023-11-30 02:43:06 25 4
gpt4 key购买 nike

我有以下方法,我从 Android 共享首选项中读取数据,我想知道当条目值为 <String,capture<?>> 时是否有一种方法可以按值对 map 进行排序.我正在写信给与 putString("name",int score) 共享的首选项.

public String readScores(){
String returnString = "";
int iterator = 1;
SharedPreferences shared = getSharedPreferences("highscores", MODE_PRIVATE);
Map<String, ?> values = shared.getAll();
for (Map.Entry<String, ?> entry : values.entrySet())
{
returnString += "<tr><td>" + String.valueOf(iterator) + "</td><td>" + entry.getKey() + "</td><td>" + String.valueOf(entry.getValue()) + "</td></tr>";
iterator++;
}
return returnString;
}

最佳答案

您可以从条目集中创建一个列表,然后使用 Collections.sort 对该列表进行排序。

//test data
Map<String, String> values = new HashMap<>();
values.put("foo", "c");
values.put("bar", "b");
values.put("baz", "a");

for (Map.Entry<String, String> entry : values.entrySet()) {
System.out.println(entry);
}

System.out.println("-----------sort by value-----------");

List<Map.Entry<String, String>> entries = new ArrayList(values.entrySet());
Collections.sort(entries, new Comparator<Map.Entry<String, String>>() {

public int compare(Map.Entry<String, String> o1, Map.Entry<String, String> o2) {
return o1.getValue().compareTo(o2.getValue());
}

});

for (Map.Entry<String, String> entry : entries) {
System.out.println(entry);
}

输出:

baz=a
foo=c
bar=b
-----------sort-----------
baz=a
bar=b
foo=c

试一试 here .

关于java - 在android中对 map 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25480856/

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