gpt4 book ai didi

java - 在列表 Java 中需要帮助

转载 作者:行者123 更新时间:2023-11-29 08:32:06 24 4
gpt4 key购买 nike

不确定我该如何实现。我有一个对象列表,其中包含多个数据示例

ABC1231211
ABC1231111
ABC4562222
ABC4562456

现在我试图根据他们的代码(123 和 456)将列表分开,并向它们添加标题和尾部。所以我的预期结果是

Head
ABC1231211
ABC1231111
Tail

Head2
ABC4562222
ABC4562456
Tail2

但是我得到的结果是

Head
ABC1231211
Tail

Head
ABC1231111
Tail

Head2
ABC4562222
Tail2

Head2
ABC4562456
Tail2

代码

 @Override
public List process(List<Detail> l) throws Exception {

for (Detail d : l) {
if (d.Code().equals("123")) {
list = generateS(d);
}
if (d.Code().equals("456")) {
list = generateR(d);
}
}

return list;
}


public List<String> generateS(Detail d) throws Exception {

try {
list.add(new HDR("Head").getHeader());

DetailL x = new DetailL();
x.setType(d.getType());
....

list.add(x.getDetail());

list.add(new TLR("Tail").getTailer());
} catch (Exception ex) {
throw new BatchException(DetailProcessor.class, ex);
}
return list;
}

任何帮助将不胜感激

最佳答案

如果您使用的是 Java 8,则可以使用流:

public void process(List<Detail> details) throws Exception {

Map<String, List<Detail>> byCode =
details.stream().collect(Collectors.groupingBy(Detail::getCode));

byCode.entrySet().stream().forEach(entry -> {
System.out.println(headerFromType(entry.getKey()));
entry.getValue().foreach(System.out::println);
System.out.println(tailFromType(entry.getKey()));
}

使用 headerFromTypetailFromType 返回“Head”/“Head2”或“Tail”/“Tail2”,具体取决于给定的类型。

关于java - 在列表 Java 中需要帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47070595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com