Remover duplicado valor lista de objetos a partir de outra lista de objetos

RJ_P:

Eu tenho dois lista de objetos, que têm nome como duplicado em ambos lista. Eu preciso remover todo o valor duplicado de list1 de list2.

Abaixo está o cenário, classe têm variável nome, com esta necessidade variável para verificar o valor duplicado de list1 e necessidade de remover.

Class ObjectClass{
          String name;
    }

// esta é a primeira lista tem 3 objetos

    List<ObjectClass> list1= new ArrayList();
    ObjectClass objectClassDataL1= new ObjectClass();
    objectClassDataL1.setName("test");
    list1.add(objectClassDataL1);
    ObjectClass objectClassDataL2= new ObjectClass();
    objectClassDataL2.setName("test2");
    list1.add(objectClassDataL2);
    ObjectClass objectClassDataL3= new ObjectClass();
    objectClassDataL3.setName("test3");
    list1.add(objectClassDataL3);



    List<ObjectClass> list2= new ArrayList();

    ObjectClass objectClassData1= new ObjectClass();
    objectClassData1.setName("test");
    list2.add(objectClassData1);
    ObjectClass objectClassData2= new ObjectClass();
    objectClassData2.setName("test3");
    list2.add(objectClassData2);

Eu preciso remover em objetos list1 com o namevalor como em list2.
Por exemplo, aqui após a remoção dos dados a partir de lista1, lista1 deve conter apenas um dos dados de objecto. Resultado esperado:

list1 -> [Object ( 'test2')]

tamanho lista1 é 1

Por favor me sugerir em Java 8 com streams.

davidxxx:

Por favor me sugerir em JAVA 8 com o córrego,

Aqui você não quiser usar fluxo como você deseja modificar o existente list1.
O que você pode fazer é adicionar os nomes dos list2elementos em um Sete remoção de elementos de list1que não estão contidas no Set:

Set<String> namesInList2 = list2.stream().map(ObjectClass::getName).collect(toSet());
list1.removeIf(o -> namesInList2.contains(o.getName());

Isso torna as coisas em duas etapas, mas é o suficiente clara e eficiente.

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=185786&siteId=1
Recomendado
Clasificación