根据列表中的值将ArrayList拆分为多个List

时间:2013-08-17 07:52:46

标签: java arraylist

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

List<MyProduct> productList = instance.getMyProductList();

这是包含许多产品的列表。

product = productList.get(i);
String tittle = product.getTitle();

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

请告诉我。 感谢。

1 个答案:

答案 0 :(得分:6)

使用番石榴:

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

使用普通的旧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);
}

两者都假设“类似”的标题实际上是一个“平等”的标题。