Java 如何比较列表中的某些字段并将其插入';s值,在另一个列表中?

Java 如何比较列表中的某些字段并将其插入';s值,在另一个列表中?,java,arraylist,compare,Java,Arraylist,Compare,我有两个列表,第一个是List,第二个是List。 ClassOne具有以下字段: @AllArgsConstructor @NoArgsConstructor @Getter @Setter @Builder public class ClassTwo { private Integer idToInsert; private String fieldToCompare; } 第一类: @AllArgsConstructor @NoArgsConstructor @Get

我有两个列表,第一个是
List
,第二个是
List
。 ClassOne具有以下字段:

@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@Builder
public class ClassTwo {

    private Integer idToInsert;
    private String fieldToCompare;

}
第一类:

@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@Builder
public class ClassOne {
    private Integer idToInsert;
    private String fieldToCompare;
    private List<AnotherClass> anotherClass;
}
我有两个列表
List
List
ClassTwo
包含
idToInsert
字段,当两个类中的
fieldToCompare
字段相同时,必须将该字段插入
ClassOne

差不多

if(classtwo.getFieldToCompare.equals(classOne.getFieldTocompare){
  classOne.setIdToInsert(classTwo.getIdToInsert());
}

如何比较这两个列表?

我建议将
列表
收集到
映射中,这是
映射(fieldToCompare,idToInsert)
,以获得更好的性能

Map<String,Integer> classTwoMap = classTwoList.stream()
                    .collect(Collectors.toMap(two->two.getFieldToCompare(), two->two.getIdToInsert()));
classListOne.forEach(one -> one.setidToInsert(classTwoMap.getOrDefault(one.getFieldTocompare(),one.getIdToInsert())));