Java 8 distinta () no hace invocar el método es igual

Raghave Shukla:

En Java 8, la documentación para () estado de funcionamiento intermedia distinta

Devuelve una secuencia que consta de los elementos distintos (de acuerdo con> Object.equals (Objeto)) de esta corriente. Para flujos de ordenadas, la selección de elementos distintos es estable (por elementos duplicados, el elemento que aparece primero

Pero no está recibiendo llamadas

Equivale método en mi clase de artículo

@Override
public boolean equals(Object obj) {
    System.out.println(this.name+"<->"+((Item)obj).name);
    return this.name.equals(((Item)obj).name);
}

Definición de datos en la clase de datos

public static List<Item> getItemList(){     
    itemData.add(new Item("Orange","Citrus Fruit","Orange",30,true,false));
    itemData.add(new Item("Apple Green","Universal Fruit","Green",60,false,true));
    itemData.add(new Item("Papaya","Wonderful Fruit","Yellow",120,false,true));
    itemData.add(new Item("Papaya","Wonderful Fruit","Green",100,false,true));
    .
    .
    .
    itemData.add(new Item("Strawberry","Citrus Fruit","Red",25,true,false));
    itemData.add(new Item("Sapota","Brown Fruit","Brown",32,false,true));

    return itemData;
}

Utilizar Canales

Data.getItemList().stream().distinct().forEach(System.out::println)

pero me di cuenta que el método equals no se llama

Benoit:

Al lado equals(), se debe redefinir hashCode()el método también. El distinct()método utiliza probablemente un conjunto internamente, que a su vez requiere una correcta ejecución hashCode(). Más información .

Supongo que te gusta

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