我不知道如何解决这个问题。循环中的逻辑错误导致不需要的输出
List<Temporary> getTemporaryList = getTemporary();
Map<Integer, Set<Attribute>> attributeOrderMap = attributeOrderMap(getTemporaryList);
Map<Integer, Set<OrderSample>> sampleOrderMap = sampleOrderMap(getTemporaryList);
Set<OrderSample> temporaryOrderSampleSet = Sets.newHashSet();
java.util.ListIterator<Order> it = orders.listIterator();
List<Order> finalOrder = Lists.newArrayList();
for (Order order : orders) {
temporaryOrderSampleSet.clear();
if (sampleOrderMap.containsKey((order.getId()))) {
Set<OrderSample> samples = sampleOrderMap.get(order.getId());
for (OrderSample orderSample : samples) {
Set<Attribute> attributes = attributeOrderMap.get(order.getId());
orderSample.setAttributes(attributes);
temporaryOrderSampleSet.add(orderSample);
order.setSample(temporaryOrderSampleSet);
finalOrder.add(order);
}
}
}
我有一个订单列表。 1000个订单。我有一组样本和一组属性。对于第一个属性,我想把它放在第一个样本,然后把它放在第一个顺序。然后对第二个属性也是一样,把它放在第二个样本中,然后把样本放在第二个样本中。
所以我的名单看起来像下面
ATTRIBUTE1 - > SAMPLE1 - > Order1
Attribute2 - > SAMPLE2 - > Order2
Attribute3 - >样品3 - > Order3
Attribute4 - > sample4 - > Order4
我当前的代码保持连连加样本。所以我的第一个名单开始很小,然后我的第二个名单更大,因为它包含了第一名单和第二名单中的所有内容,然后第三名更大等等。我被卡住了,不知道该怎么办。
看来你想在'for(OrderSample orderSample:samples)'循环中说'temporaryOrderSampleSet.clear();'? – devnull