【发布时间】:2019-09-28 06:44:56
【问题描述】:
假设我有以下列表
full_list
ID NAME
1 Apple
1 Banana
2 Carrot
1 Mango
2 Spinach
3 BMW
3 Opal
有了这个单一列表,我想创建一个基于列 ID 的分组列表,如下所示
fruits_list veggies_list cars_list
ID NAME ID NAME ID NAME
1 Apple 2 Carrot 3 BMW
1 Banana 2 Spinach 3 Opal
1 Mango
我试图用Arraylist<ArrayList<CustomObject>> 来做这件事。但它增加了代码的复杂性。我做错了吗?有没有更清洁的方法来做到这一点?
PS:数据传入不固定。我无法使用条件明确定义列表(即 if(id==1)、if(id==2) 等)。这应根据传入的数据动态完成。
【问题讨论】:
-
使用列表映射,id 是映射的键,映射的值是该键的对象列表
-
为此您不能使用arraylist。但是,您可以使用列表映射。您的地图将类似于 Map
> myMap = new LinkedHashMap >(). -
@MohinuddinLuhar 我必须使用 ArrayList,因为我正在将数据库(结果集)中的数据填充到数组列表中。我们是否可以将结果集数据直接填充到 Map 中?
-
您必须以某种数据结构获取数据。那是什么?
-
@SSP 数据是来自数据库的结果集,例如 (int, date, string, string, string, int),我只想在第一个
int上分组。