gpt4 book ai didi

android - 在 HashMap 的 Arraylist 中查找值

转载 作者:行者123 更新时间:2023-11-30 02:45:43 25 4
gpt4 key购买 nike

我正在尝试从 hashmap 的数组列表中搜索、跟踪名称。我已经搜索了很多网站,但找不到任何解决方案。

下面是创建 HashMap 数组列表的代码:

 ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();
searchText = (EditText) findViewById(R.id.searchText);

//Count from the server
int count = dataCount();

for (int i = 0; i < dataCount; i++)
{
HashMap<String, String> map = new HashMap<String, String>();

// adding data to HashMap key => value
map.put(KEY_ID, trackNumber);
map.put(KEY_TITLE, trackTitle);
map.put(KEY_ARTIST, trackArtist);
map.put(KEY_DURATION, trackDuration);
map.put(KEY_THUMB_URL, trackAlbumArt);

// adding HashList to ArrayList
songsList.add(map);

}

adapter=new LazyAdapter(this, songsList);
list.setAdapter(adapter);

在 TextChanged 上,我正在尝试获取搜索结果并使用新结果更新适配器。

我正在尝试在

中给出的类似逻辑

HashMap Searching For A Specific Value in Multiple Keys

Is it there a better way to Search HashMap from ArrayList

但无法得到任何结果。

谢谢!

最佳答案

选项 1:迭代列表项并搜索匹配项:

// this code wasn't tested - but I'm sure you'll get the idea
Map getSong(String title) {
for(Map song : songsList) {
if(song.get(KEY_TITLE).equals(title)) {
return song;
}
}
return Collections.emptyMap();
}

选项 2(首选):将歌曲保存到另一个 Map(而不是列表)中并使用标题作为“键”:

Map<String, HashMap<String, String>> songsList = new HashMap<String, HashMap<String, String>>();

// add a song:
HashMap<String, String> map = new HashMap<String, String>();
map.put(KEY_ID, trackNumber);
map.put(KEY_TITLE, trackTitle);
map.put(KEY_ARTIST, trackArtist);
map.put(KEY_DURATION, trackDuration);
map.put(KEY_THUMB_URL, trackAlbumArt);
// adding HashList to Map
songsList.put(trackTitle, map);

那么您不必遍历列表来查找您的歌曲,而只需执行以下操作:

Map getSong(String title) {
return songsList.get(title);
}

关于android - 在 HashMap 的 Arraylist 中查找值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25086585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com