我有一个包含以下键/值的 TreeMap:
private ArrayList<TreeMap<String,String>> mList = new ArrayList<TreeMap<String,String>>();
TreeMap<String,String> item = new TreeMap<String,String>();
item.put("FirstName", strFirstName);
item.put("LastName", strLastName);
item.put("Country", strCountry);
mList.add( item );
添加所有项目后,如何根据存储在“姓氏”键下的值 对 TreeMap 进行排序?我想要一个与原始列表格式相同但应用了上述排序的 TreeMap:
“詹姆斯”、“阿米什人”、“美国”
“查尔斯”、“布伦特伍德”、“美国”
“ jack ”、“康奈尔”、“美国”
“艾米”、“邓恩”、“美国”
“梅琳达”、“埃利斯”、“加拿大”
我发现了一个与在“常规”Java 中按值对 TreeMap 进行排序有关的类似问题,但该代码对我不起作用 - 我不知道是因为 Android 的特性还是我无法使其适应适合我的需要:-/
谢谢,
尼克
最佳答案
听起来您正在尝试对包含 TreeMap 的 ArrayList 进行排序,对吗? 如果是这样,以下应满足您的需求:
Collections.sort(mList, new Comparator<TreeMap<String, String>>(){
public int compare(TreeMap<String, String> left, TreeMap<String, String> right) {
return left.get("LastName").compareTo(right.get("LastName"));
}
});
应该注意的是,可能没有必要使用 TreeMap 来包含名称/值对列表 - 我只需要创建一个类来保存这些值。
关于java - 根据值对 TreeMap 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6904317/