Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何按字母顺序排列此arraylist?_Java_Android_Arraylist - Fatal编程技术网

Java 如何按字母顺序排列此arraylist?

Java 如何按字母顺序排列此arraylist?,java,android,arraylist,Java,Android,Arraylist,因此,我有一个ArrayList,其中有一个hashmap,返回歌曲列表。所以我的问题是,我该如何修改这个代码,使其按字母顺序返回歌曲 这是密码 public ArrayList<HashMap<String, String>> getPlayList(){ File home = new File(MEDIA_PATH); if (home.listFiles(new FileExtensionFilter()).length > 0) {

因此,我有一个
ArrayList
,其中有一个hashmap,返回歌曲列表。所以我的问题是,我该如何修改这个代码,使其按字母顺序返回歌曲

这是密码

public ArrayList<HashMap<String, String>> getPlayList(){
    File home = new File(MEDIA_PATH);

    if (home.listFiles(new FileExtensionFilter()).length > 0) {
        for (File file : home.listFiles(new FileExtensionFilter())) {
            HashMap<String, String> song = new HashMap<String, String>();
            song.put("songTitle", file.getName().substring(0, (file.getName().length() - 4)));
            song.put("songPath", file.getPath());

            // Adding each song to SongList
            songsList.add(song);
        }
    }

    // return songs list array
    return songsList;
}
public ArrayList getPlayList(){
文件主目录=新文件(媒体路径);
if(home.listFiles(新文件扩展筛选器()).length>0){
对于(文件:home.listFiles(新的FileExtensionFilter())){
HashMap宋=新HashMap();
song.put(“songTitle”,file.getName().substring(0,(file.getName().length()-4));
put(“songPath”,file.getPath());
//将每首歌曲添加到歌曲列表
歌曲列表。添加(歌曲);
}
}
//返回歌曲列表数组
返回歌曲列表;
}

您需要实现一个
比较器
并使用
集合。排序


查看此相关答案:

您可以使用
集合。使用比较歌曲标题的
匿名比较器进行排序,例如:

Collections.sort(list, new Comparator<Map<String, String>>() {
    public int compare(Map<String, String> o1, Map<String, String> o2) {
        if (o1.containsKey("songTitle") && o2.containsKey("songTitle")) {
            return o1.get("songTitle").compareTo(o2.get("songTitle"));
        }
        return 0;
    }
});
Collections.sort(列表,新比较器(){
公共整数比较(映射o1,映射o2){
if(o1.containsKey(“歌曲名称”)&o2.containsKey(“歌曲名称”)){
返回o1.get(“songTitle”)。与(o2.get(“songTitle”))进行比较;
}
返回0;
}
});

为什么在数组中使用哈希映射?使用Map.Entry的数组,比如Array=newarraylist();然后你可以使用Collections.sort并实现一个比较器,就像用户“kevingreen”说的那样。别忘了定义你的songsList ArrayList变量!