按字母顺序排序类型的hashmap <string,string> ANDROID </string,string>

时间:2014-07-03 13:02:25

标签: android sorting android-listview hashmap android-adapter

实现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);
                        }
                    });

2 个答案:

答案 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