Tôi mới sử dụng luồng trong java, vì vậy đây là câu hỏi của tôi. Tôi có một [] [] gấp đôi, trong đó tôi muốn thực hiện tổng kết các phần tử, vì nó tôi đã theo dõi và aproach tương tự như C# Linq, nhưng có vẻ như không hoạt động.Luồng dòng 2D giảm trong java
Arrays.stream(myArray).reduce(0,(acc, i) -> acc + Arrays.stream(i).sum());
Lỗi là acc có vẻ là gấp đôi [], vì vậy nó không thể thực hiện gấp đôi [] + gấp đôi. Trong C# LINQ bộ tích lũy được giả định là cùng loại với hạt giống (0 trong trường hợp này). Những gì tôi đang mất tích? Cảm ơn trước.
Rất nhiều cảm ơn, tôi đã hiểu được nó bây giờ. – BoRDeX
flatMap là cách tiếp cận sạch sẽ nhất. –
Tôi thích 'Arrays.stream (myArray) .flatMapToDouble (Mảng :: stream) .sum();' vì đây không phải là trường hợp sử dụng varargs. Và 'Arrays :: stream' thậm chí còn ngắn hơn' DoubleStream :: of'… – Holger