2016-03-28 20 views
2

Yani bir şarkı listesi döndüren bir hashmap ile bir ArrayList var. Yani benim sorum şu, bu kodu nasıl değiştiririm ki şarkıları alfabetik sırayla döndürür? İşte Bu arraylisti nasıl alfabetik olarak sıralayabilirim?

kod

...

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; 
} 
+0

Neden bir HashMap'i bir Dizinin içinde kullanıyorsunuz? Bir dizi Map.Entry , array = new ArrayList >(); Daha sonra Collections.sort'u kullanabilir ve "kevingreen" kullanıcısı gibi bir Karşılaştırıcı uygulayabilirsiniz. – GuilhE

+0

ŞarkılarList ArrayList değişkeninizi tanımlamayı ihmal etmeyin! –

cevap

2

Sen karşılaştırır bir anonymous comparator ile Collections.sort kullanabilirsiniz şarkının başlıkları, örneğin:

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; 
    } 
}); 
İlgili konular