实现Hashmap后,我意识到它没有按字母顺序排序,所以现在我想知道是否有另一张地图为我排序文件? 我尝试使用上面的代码,但它说我不能在listview类型中使用sort
public ArrayList<HashMap<String, String>> songsList =
new ArrayList<HashMap<String, String>>();
Collections.sort(songsList, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return s1.compareToIgnoreCase(s2);
}
});
答案 0 :(得分:2)
编辑 -
您可以使用以下内容 -
Collections.sort(songsList,new Comparator<HashMap<String,String>>(){
public int compare(HashMap<String,String> mapping1,
HashMap<String,String> mapping2){
return mapping1.get("KEY").compareToIgnoreCase(mapping2.get("KEY"));
}
注意:用钥匙替换KEY。
答案 1 :(得分:0)
要存储您的数据,您也可以使用Sorted Map。那么你应该没有更多的问题来排序地图。
问候。
---编辑---
SortedMap是一个接口,由TreeMap实现。因此,如果您想使用自定义Comparator,您可以轻松实现SortedMap。作为最小样本(带有树形图):
private static List<Map<String, String>> list = new ArrayList<Map<String, String>>();
public static void main(final String[] args) {
for(int i = 0; i < 5; i++){
Map<String, String> map = new TreeMap<String, String>();
map.put("A", "a");
map.put("D", "d");
map.put("B", "b");
map.put("C", "c");
list.add(map);
}
for (Map<String, String> map : list){
for (String element : map.values()) {
System.out.println(element);
}
}
}
要自己实现SortedMap,请查看:this