我有一个MyObjects的arraylist,其中我想根据我的对象的标题值拆分我的列表。例如
List<MyProduct> productList = instance.getMyProductList();
这是包含许多产品的列表。
product = productList.get(i);
String tittle = product.getTitle();
我想将我的arraylist分成几个具有相似产品名称的列表。
请告诉我。 感谢。
答案 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);
}
两者都假设“类似”的标题实际上是一个“平等”的标题。