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变量!