我有一个每天都会收到的类似对象(比如玩具)的数组列表。
List<Toy> toyList;
玩具 bean 将有四个属性,即名称、类型、代码、编号。
- 代码可以是 1 到 10 之间的任何整数(不必每天都获得所有代码)
- 类型可以是字符串“one”或字符串“two”
我想输出一份总结玩具类型和代码的报告,如下所示:
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
为了轻松地从我拥有的列表中创建这样的报告,我必须将列表分为两个级别:首先基于类型(一和二),然后基于今天可用的代码(所有代码都不会被每天都有)。
实现这一目标最有效的方法是什么?
我可以通过迭代主列表并创建子列表来实现它。但是每天都无法使用所有代码怎么办?如何仅为今天可用的代码创建子列表?
感谢您的阅读!
最佳答案
您可以迭代所有玩具并获取类型、代码等的 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());
}
关于java - 将子列表与对象列表分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11521015/