Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 基于列表中的一组值进行复制_Java_Sorting_Collections - Fatal编程技术网

Java 基于列表中的一组值进行复制

Java 基于列表中的一组值进行复制,java,sorting,collections,Java,Sorting,Collections,我有一个VO列表,需要根据值查找重复条目吗 name usageCount numberofReturns trendNumber nonTrendNumber trendType Name1 0 0 1 1 A Name2 0 0 1 1 B Name3 0 0

我有一个VO列表,需要根据值查找重复条目吗

name usageCount numberofReturns trendNumber nonTrendNumber trendType
Name1   0           0              1           1             A
Name2   0           0              1           1             B
Name3   0           0              1           2             C
Name4   0           0              2           2             D
Name5   0           0              2           2             E
当前趋势=“X” 在这个列表中,我必须使用usagecount、numberofreturns、trendNumber和nonTrendnumber找出重复的值。这里(Name1,name2)和(Name4,name5)是相同的,所以我必须更新trendType值=X,并保持名称3不变。
除了使用for循环迭代列表并使用CopyOnWriteArrayList更新列表值(以避免并发异常)之外,还有其他方法吗?

此VO对象列表由您填充?如果是,则可以在VO类中实现equals、hashCode方法。您可以根据希望唯一的字段(usagecount、numberofreturns、trendNumber和nonTrendnumber)实现这些方法。之后,您可以将列表替换为Set,并且该Set将不包含任何重复项


如果您没有填充VO对象列表,则另一种解决方案是迭代列表并插入到集合中。VO2类是与VO相同的DTO类,但实现了equals和hashcode方法。

为什么更改列表中的对象数据会导致
ConcurrentModificationException
?您不必更改直接包含对象的列表,只需更改对象数据。@Smutje感谢您提供的信息,除了循环之外,还有其他方法可以执行此逻辑吗?显然有人必须循环列表以查找任何重复项,无论是直接的代码还是库方法—在您的情况下,更大的问题是您必须将每一行与其他每一行进行匹配,以检查重复项,因为重复项仅在行之间定义,而不是基于某些常量值全局定义。您必须至少迭代一次集合,以了解它包含的数据。所以,问题应该是:是否有可能只需要一次迭代就可以做你们想要的事情。