В Java 8 документы для состояния промежуточной операции Different ()
Возвращает поток, состоящий из отдельных элементов (согласно> Object.equals (Object)) этого потока.
Для упорядоченных потоков выбор отдельных элементов стабилен (для дублированных элементов элемент появляется первым
Но это не называется
Метод равных в моем классе предметов
@Override
public boolean equals(Object obj) {
System.out.println(this.name+"<->"+((Item)obj).name);
return this.name.equals(((Item)obj).name);
}
Определение данных в классе данных
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;
}
Использование потоков
Data.getItemList().stream().distinct().forEach(System.out::println)
но я понимаю, что метод equals не называется