distinct()메소드가 적용되는 객체에 반드시 equals,hashcode메소드가 오버라이딩 되어있어야한다.
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return " name='" + name + '\'' + ", age=" + age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
if (age != person.age) return false;
return name != null ? name.equals(person.name) : person.name == null;
}
@Override
public int hashCode() {
int result = name != null ? name.hashCode() : 0;
result = 31 * result + age;
return result;
}
}
import java.util.Arrays;
import java.util.List;
public class DistinctExample {
public static void main(String[] args) {
List<Person> list = Arrays.asList(
new Person("lee",33),
new Person("lee",33),
new Person("kim",37),
new Person("kim",37),
new Person("kim",37)
);
list.stream().distinct().forEach(System.out::println);
}
}
[System] 배열 병합 arraycopy(src,srcPos,dest,length) 예제 (0) | 2020.06.17 |
---|---|
[Stream 스트림] flatMap() 2차원 배열 내의 1차원 배열 요소의 중간처리 (0) | 2020.06.17 |
[Stream] 스트림 필터 : filter() 메서드 예제 (0) | 2020.06.17 |
[Stream] 배열에서 스트림 얻기 (0) | 2020.06.16 |
[Stream] 스트림 중간처리와 최종 연산 : mapToInt(), average() (0) | 2020.06.16 |
댓글 영역