【发布时间】:2018-10-22 08:47:49
【问题描述】:
我有一个元素列表。我想根据某些条件将此列表的元素分组到列表列表中。是否可以在 java 中轻松完成?
public class CollectionTest {
public static void main(String[] arg) {
Target target0 = new Target();
target0.setRisklevel("III");
target0.setLocation("Combined");
Target target1 = new Target();
target1.setRisklevel("III");
target1.setLocation("Combined");
Target target2 = new Target();
target2.setRisklevel("III");
target2.setLocation("Combined");
Target target3 = new Target();
target3.setRisklevel("III");
target3.setLocation("Combined");
Target target4 = new Target();
target4.setRisklevel("IV");
target4.setLocation("Combined");
Target target5 = new Target();
target5.setRisklevel("IV");
target5.setLocation("Combined");
Target target6 = new Target();
target6.setRisklevel("IV");
target6.setLocation("Combined");
Target target7 = new Target();
target7.setRisklevel("II");
target7.setLocation("Domestic");
Target target8 = new Target();
target8.setRisklevel("IV");
target8.setLocation("Domestic");
Target target9 = new Target();
target9.setRisklevel("IV");
target9.setLocation("Domestic");
Target target10 = new Target();
target10.setRisklevel("IV");
target10.setLocation("Domestic");
Target target11 = new Target();
target11.setRisklevel("IV");
target11.setLocation("Domestic");
List<Target> ucrtargetList = new ArrayList<Target>();
ucrtargetList.add(target0);
ucrtargetList.add(target1);
ucrtargetList.add(target2);
ucrtargetList.add(target3);
ucrtargetList.add(target4);
ucrtargetList.add(target5);
ucrtargetList.add(target6);
ucrtargetList.add(target7);
ucrtargetList.add(target8);
ucrtargetList.add(target9);
ucrtargetList.add(target10);
ucrtargetList.add(target11);
List<List<Target>> fullList = new ArrayList<List<Target>>();
}
}
这里的条件是风险级别,并且列表列表中的每个列表中的位置必须相同。所以 fullList 里面应该有 4 个列表(1st III & Combined,2nd IV & Combined,3rd II & Domestic,4th IV & Domestic)。
我可以遍历列表并设置值。有没有更简单的方法可以用 java8 或 apache commons 做到这一点?
【问题讨论】:
标签: java list arraylist collections