根据列表中的值将ArrayList拆分为multipleList

And*_*azy 2 java arraylist

我有一个MyObjects的arraylist,我想根据我的对象的标题值拆分我的列表.例如

List<MyProduct> productList = instance.getMyProductList();
Run Code Online (Sandbox Code Playgroud)

这是我的包含许多产品的清单.

product = productList.get(i);
String tittle = product.getTitle();
Run Code Online (Sandbox Code Playgroud)

我想将我的arraylist分成几个具有相似产品名称的列表.

请告诉我.谢谢.

JB *_*zet 6

与番石榴:

ListMultimap<String, MyProduct> result = Multimaps.index(productList, new Function<String, Product>() {
    @Override
    public String apply(Product input) {
        return input.getTitle();
    }
});
Run Code Online (Sandbox Code Playgroud)

使用普通的旧Java集合:

Map<String, List<MyProduct>> result = new HashMap<>();
for (MyProduct p : productList) {
    List<MyProduct> list = result.get(p.getTitle());
    if (list == null) {
        list = new ArrayList<>();
        result.put(p.getTitle(), list);
    }
    list.add(p);
}
Run Code Online (Sandbox Code Playgroud)

两者都假设"类似"标题实际上是"平等​​"标题.