java - 在 Hashmap 数组中搜索特定键 android

标签 java android

我有一个 HashMapArrayList,如下所示:

ArrayList<HashMap<String, String>> playListSongs = new ArrayList<HashMap<String, String>>();

我像这样填充列表:

for (int i1 = 0; i1 < nl.getLength(); i1++) {
  // creating new HashMap
  HashMap<String, String> map = new HashMap<String, String>();
  Element e = (Element) nl.item(i1);
  // adding each child node to HashMap key => value
  map.put(KEY_SONGS, String.valueOf(i1));
  map.put(KEY_FILE, parser.getValue(e, KEY_FILE));
  map.put(KEY_DURATION, parser.getValue(e, KEY_DURATION));
  map.put(KEY_FILE, parser.getValue(e, KEY_FILE));
  map.put(KEY_ALBUM, parser.getValue(e, KEY_ALBUM));
  map.put(KEY_TITLE, parser.getValue(e, KEY_TITLE));
  map.put(KEY_ARTIST, parser.getValue(e, KEY_ARTIST));
  map.put(KEY_ARTWORK, parser.getValue(e, KEY_ARTWORK));
  // Songs List of selected playlist
  playListSongs.add(map);
  // list view bind
  PopulateList(playListSongs);
}

现在我想从 HashMap-array-list(playListSongs) 获取特定艺术家的专辑和歌曲以及歌曲数,以将其绑定(bind)到 ListView 。

我怎样才能实现这个目标?

最佳答案

您可以使用此方法获取特定艺术家的歌曲:

private ArrayList<String> getSongsByArtist(String artist){
    ArrayList<String> songs = new ArrayList<String>();
    for (HashMap<String, String> hashMap : playListSongs) {
        if(hashMap.get(KEY_ARTIST).equals(artist)){
            songs.add(hashMap.get(KEY_TITLE));
        }
    }
    return songs;       
}

要获得不同的艺术家,请使用以下方法:

private ArrayList<String> getDistinctArtists(){
    HashMap<String,String> duplicateTracker = new HashMap<String, String>();
    ArrayList<String> distinctArtists = new ArrayList<String>();
    for (HashMap<String, String> hashMap : playListSongs) {
        // Check whether artist is already added or not
        if(duplicateTracker.containsKey(hashMap.get(KEY_ARTIST))==false){
            //Add artist name to hash map
            duplicateTracker.put(hashMap.get(KEY_ARTIST), hashMap.get(KEY_ARTIST));
            distinctArtists.add(hashMap.get(KEY_ARTIST));
        }
    }
    return distinctArtists;     
}

关于java - 在 Hashmap 数组中搜索特定键 android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11009576/

相关文章:

java - 将 Restful Web 服务与 spring 和 gdata api 集成时出错

android - 键盘布局问题

Java:克隆之前进行类型转换?

java - 如何在java中将文件与程序相关联

android - 与 Jenkins 持续集成用于 React Native (iOS + Android) 项目

java - 如何在 Eclipse Java 构建路径中添加 android-async-http.JAR

android - flutter 的 FCM 通知声音在发布中不起作用

android - 保存 Android Stock 语音识别引擎的音频输入

java - 如何在javax.print中获取打印机的型号?

java - DataStax 找不到 JAVA_HOME