基于类别拆分arraylist的最佳方法

use*_*387 5 java arraylist

我有一个ArrayList,其中DataType是一个类:

class DataType {
  String id;
  String dType;
  String description;
  // setters and getters follow
}
Run Code Online (Sandbox Code Playgroud)

有了给定的ArrayList<Datatype>,我想创建子列表,这样每个子列表都有相同的值dType.即所有DataType具有相同值的对象dType应该位于一个子列表中,依此类推.

此外,所有子列表都将添加到ArrayList<ArrayList<Datatype>>创建的列表中.

有人可以为此建议最合适的方法.

Tim*_*m B 4

我这样做的方法是创建一个地图:

Map<String, List<DataType>> data;
Run Code Online (Sandbox Code Playgroud)

然后循环遍历原始数组,对于每个值,使用 dType 作为键将它们插入到 Map 中。

for (DataType dt: toSort) {
    List<DataType> list = data.get(dt.dType);
    if (list == null) {
        list = new ArrayList<>();
        data.put(dt.dType, list);
    }
    list.add(dt);
}
Run Code Online (Sandbox Code Playgroud)

现在你已经把它们全部分类好了。