JDK 8 EA가 출시되었습니다. 이제 막 lambda와 새로운 Stream API에 익숙해졌습니다. 나는 병렬 스트림 목록을 정렬 시도했지만, 결과는 항상 잘못 :java 8 parallelStream() with sorted()
import java.util.ArrayList;
import java.util.List;
public class Test
{
public static void main(String[] args)
{
List<String> list = new ArrayList<>();
list.add("C");
list.add("H");
list.add("A");
list.add("A");
list.add("B");
list.add("F");
list.add("");
list.parallelStream() // in parallel, not just concurrently!
.filter(s -> !s.isEmpty()) // remove empty strings
.distinct() // remove duplicates
.sorted() // sort them
.forEach(s -> System.out.println(s)); // print each item
}
}
OUTPUT : 출력이 다른 때마다 것을
C
F
B
H
A
참고. 제 질문은 버그입니까? 또는 목록을 병렬로 정렬 할 수 없습니까? 그렇다면 JavaDoc이 그 이유를 설명하지 않는 이유는 무엇입니까? 마지막 질문, 출력이 스트림 유형에 따라 다른 조작이 있습니까?
정렬 후 중복을 제거하는 것이 좋습니다. – Ingo