java - 将子列表与对象列表分开

标签 java list collections

我有一个每天都会收到的类似对象(比如玩具)的数组列表。

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/

相关文章:

list - 在 Dart 中更改列表大小的最佳方法是什么?

Java 集合和比较器

c# - 无序无重复的线程安全集合

java - 动态生成的 java 字节码是否需要任何优化?

java - 使用 Java NIO 实现通用计时器(周期性事件)?

java - 使用 CheckBox 和 "More"按钮为 Android 创建高级列表

java - 如何检查文件数据库中是否已存在电子邮件地址?

java - 使用堆栈匹配括号代码

java - Android 选择文件 Intent

java - 如何在 Java 中比较两个 HashMap