如何检索存储在TreeMap中的List对象?

时间:2018-04-11 19:39:55

标签: android hashmap treemap sortedmap

我有一个对象列表,我需要按类别排序,也按字母顺序排序。我的想法是获取我的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());
        }

但是,如果您有值列表怎么办?如何检索该列表中的所有内容?好像我需要另一次转换。

2 个答案:

答案 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列表。使用对您有意义的方法。干杯!