我怎样才能按字母顺序排列我的arraylist

我想按照字母顺序对我的arraylist进行排序,但我不明白……也许你可以帮助我。 我不知道为什么,但我无法使用collections.sort …我编码错误是什么? 非常感谢你的所有帮助和时间,Vinzenz

public class SongsManager { final String MEDIA_PATH = Environment.getExternalStorageDirectory() .getPath() + "/"; private ArrayList<HashMap> songsList = new ArrayList<HashMap>(); private String mp3Pattern = ".mp3"; private String mp4Pattern = ".mp4"; private String MP3Pattern = ".MP3"; private String MP4Pattern = ".MP4"; private String m4aPattern = ".m4a"; // Constructor public SongsManager() { } /** * Function to read all mp3 files and store the details in * ArrayList * */ public ArrayList<HashMap> getPlayList() { System.out.println(MEDIA_PATH); if (MEDIA_PATH != null) { File home = new File(MEDIA_PATH); File[] listFiles = home.listFiles(); if (listFiles != null && listFiles.length > 0) { for (File file : listFiles) { System.out.println(file.getAbsolutePath()); if (file.isDirectory()) { scanDirectory(file); } else { addSongToList(file); } } } } // return songs list array return songsList; } private void scanDirectory(File directory) { if (directory != null) { File[] listFiles = directory.listFiles(); if (listFiles != null && listFiles.length > 0) { for (File file : listFiles) { if (file.isDirectory()) { scanDirectory(file); } else { addSongToList(file); } } } } } private void addSongToList(File song) { if (song.getName().endsWith(mp3Pattern) || song.getName().endsWith(mp4Pattern) || song.getName().endsWith(MP4Pattern) || song.getName().endsWith(MP3Pattern) || song.getName().endsWith(m4aPattern)) { HashMap songMap = new HashMap(); songMap.put("songTitle", song.getName().substring(0, (song.getName().length() - 4))); songMap.put("songPath", song.getPath()); // Adding each song to SongList songsList.add(songMap); } } } 

使用Collections.sort

 Collections.sort(listOfStrings, String.CASE_INSENSITIVE_ORDER); 

有关详细信息,请参阅以下

String.CASE_INSENSITIVE_ORDER

Collections.sort

您也可以创建自定义Comparator ,而不是使用String.CASE_INSENSITIVE_ORDER

您必须实现自己的Comparator>并将其传递给Collections.sort