java - 使用 Hashmap 获取额外参数与使用拆分
问题描述
我正在遍历属于MediaStore
. 我遍历它们并创建一个 track id->genre id 的映射,供我的 scan tracking 方法以后使用。我正在做的类似于以下内容:
private void scanGenres()
{
// Iterate over genres block start.
// Iterate over tracks by a genre start
mTracksGenreHashMap.put(trackId, genreId);
// Iterate over tracks by a genre start
// Iterate over genres block end.
}
我意识到我还需要存储流派名称,而不仅仅是流派 ID 以供我的曲目扫描方法使用。我有两个选择。我可以HashMap
为流派名称创建一个新的流派 ID。我的另一个方法是将流派名称放在 my 的值中mTracksGenreHashMap
HashMap
。第一个选项:
private void scanGenres()
{
// Iterate over genres block start.
// Iterate over tracks by a genre start
mTracksGenreHashMap.put(trackId, genreId);
mGenreIdToNameHashMap.put(genreId, genreName);
// Iterate over tracks by a genre start
// Iterate over genres block end.
}
第二种选择:
private void scanGenres()
{
// Iterate over genres block start.
// Iterate over tracks by a genre start
mTracksGenreHashMap.put(trackId, genreId + ";" + genreName);
// Iterate over tracks by a genre start
// Iterate over genres block end.
}
然后,在我的扫描轨道方法上:
private void scanTracks()
{
// Iterate over tracks in MediaStore start
// Get track Id.
// First option.
long genreId = mTracksGenreHashMap.get(trackId);
String genreName = mGenreIdToNameHashMap.get(genreId);
// OR
// Second option
string[] genreIdName = mTracksGenreHashMap.get(trackId);
string genreId = genreIdName[0];
string genreName = genreIdName[1];
// Iterate over tracks in MediaStore end
}
我想知道哪种解决方案性能更好。请记住,在每种方法中,我都会遍历曲目。在第一个上,我循环播放一个流派中的曲目。在scanTracks()
我循环所有曲目。
谢谢。
解决方案
听起来“流派”本身就是一个有意义的概念,因此它应该在您的程序中表示为一个类,而不是跨不同数据结构的数据片段:
class Genre {
public final String id;
public final String name;
}
mTracksGenreHashMap.put(trackId, genreObject);
“我想知道哪种解决方案效果更好”
差异太小,在实际用例中没有意义。
推荐阅读
- python - 具有多个条件的 Python 排列(排列 4 组中的 24 个项目)
- huawei-mobile-services - 如何使用 Firebase/Google Analytics 分析用户行为并记录来自华为手机的特定事件?
- python - 我应该创建多少个随机生成器
- arrays - React Native - 当对象具有相同的 id 时操作数组
- webview - UWP Webview:CSS:悬停支持?
- javascript - 通过函数从输入 ID 传递值
- laravel - 将 phpunit 与 Laravel 和 Spatie 一起使用
- amazon-web-services - AWS SQS 随机分组多条消息?
- visual-studio - Visual Studio 2019 中的访问设置
- python - 在不是primary_key的flask-sqlalchemy中生成一个自动递增的整数