我有一个对象列表,我需要按类别排序,也按字母顺序排序。我的想法是获取我的ArrayList,将其转换为HashMap,以便我可以使用键来按类别组织我的数据,然后创建一个树形图以自然地按字母顺序排列数据。它有效,我不确定更好/更有效的方法。我的TreeMap具有以下结构:
TreeMap<String, ArrayList<CustomModel>>
如何访问此树形图中的值列表?我知道我可以得到一个特定的值,如果它是一个String,例如如下所示:
for (Map.Entry<String, String> entry : treemap.entrySet()) {
Log.i(TAG, "key= " + entry.getKey());
Log.i(TAG, "value= " + entry.getValue());
}
但是,如果您有值列表怎么办?如何检索该列表中的所有内容?好像我需要另一次转换。
答案 0 :(得分:1)
好像你已经解决了这个问题。 Entry.value()将返回ArrayList,而不是String类型。尝试枚举这个,然后记录每个值
答案 1 :(得分:0)
我得到了答案。有几种方法可以做到这一点。您可以从列表或整个列表对象中检索对象。
1)列表中的对象
您需要一个键才能执行此选项。使用keySet()
获取密钥Object key = treemap.keySet().toArray()[index];
Object value = treemap.get(key);
2)整个列表对象
ArrayList<CustomModel> alCustomModel = (ArrayList<CustomModel>) treemap.values().toArray()[index];
有关此问题的一些注意事项是,您要检索每个位置的CustomModel列表。使用对您有意义的方法。干杯!