我有一个类似物品(比如玩具)的arraylist,我每天都会得到它。
List<Toy> toyList;
玩具bean将有四个属性,如名称,类型,代码,数字。
我想输出一份总结玩具类型和代码的报告,如下所示:
One
name type number
--------------------------------
abc 1 19
pqr 1 20
Code 1 total 39
lmn 9 15
Code 9 total 15
========================================
Two
name type number
--------------------------------
hmn 6 18
efg 6 20
Code 6 total 38
jkl 5 15
Code 5 total 15
为了从我的列表中轻松创建这样的报告,我将不得不将列表分为两个级别:首先基于类型(一个和两个),然后基于今天可用的代码(所有代码都不会每天都有。
实现这一目标的最有效方法是什么?
我可以通过遍历主列表并创建子列表来实现它。但是如何处理所有代码每天都无法使用的部分?如何仅为今天可用的代码创建子列表?
感谢阅读!
答案 0 :(得分:2)
您可以遍历所有玩具并获取Set
类型,代码等。您可能希望将其设置为SortedSet,以便它们以一致的顺序显示。
Set<Type> types = EnumSet.noneOf(Type.class);
SortedSet<String> codes = new TreeSet<String>();
for(Toy toy: toys) {
types.add(toy.getType());
codes.add(toy.getCode());
}
答案 1 :(得分:1)
查看Lambdaj库grouping feature(滚动到分组项目部分)。
答案 2 :(得分:0)
您可以尝试使用以下任何库: