gpt4 book ai didi

java - 如果属性具有相同的值,如何使用 java 将++1 附加到 Pojo 列表中的属性值

转载 作者:行者123 更新时间:2023-12-02 01:44:37 26 4
gpt4 key购买 nike

我有大量数据从数据库提取到列表,如下所示

List<TestVO> aList=new ArrayList<TestVO>();     
TestVO testVO=new TestVO();
testVO.setName("val1");
testVO.setTime("Time is --1");
TestVO testVO2=new TestVO();
testVO2.setName("val2");
testVO2.setTime("Time is --2");
TestVO testVO3=new TestVO();
testVO3.setName("val1");
testVO3.setTime("Time is --3");
aList.add(testVO);
aList.add(testVO2);
aList.add(testVO3);

现在我想为给定列表中下一个 Pojo 的 Name 属性的每个相似值附加“_”+1。最后列表应该有像下面这样的 pojo

TestVO [name=val1_1, time=Time is --1]
TestVO [name=val1_2, time=Time is --3]
TestVO [name=val2, time=Time is --2]

请建议我是否可以使用任何 Java 8 API?我尝试使用比较器来查找重复项,但无法修改原始数据?感谢您的帮助

最佳答案

您可以分两步完成操作:

将具有重复名称的 TestVO 收集到 Map 中,然后修改它们的名称。

List<TestVO> aList = new ArrayList<TestVO>();      
//...
Map<String, TestVO> vosByName =
aList.stream()
.collect(groupingBy(TestVO::getName))
.values()
.stream()
.filter(l -> l.size()>1)
.forEach(list -> {
int i = 1;
for (TestVO vo : list){
vo.setName(vo.getName() + "_" + i++);
}
}
);

关于java - 如果属性具有相同的值,如何使用 java 将++1 附加到 Pojo 列表中的属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53864312/

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