(가) equals 메소드 된 invoke 별개의 자바 (8) ()하지 않습니다

Raghave Shukla :

자바 8 구별 () 중간체 동작 상태 용 문서에서

별개의 요소로 구성되는 스트림 (Object.equals> 상기 (개체))이 반환 스트림. 명령 스트림의 경우, 별개의 구성 요소의 선택, 소자가 처음 나타나는 중복 요소의 안정된 (인

그러나 호출 받고 있지 않습니다

내 항목의 메소드 같음

@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 메소드가 호출되지 실현

벤와 :

옆에 equals(), 당신은 재정의 할 필요가 hashCode()방법뿐만 아니라. distinct()방법은 아마 차례로 제대로 구현이 필요 내부적으로 세트를 사용합니다 hashCode(). 더 많은 정보를 원하시면 .

추천

출처http://43.154.161.224:23101/article/api/json?id=317287&siteId=1