You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by hy...@apache.org on 2020/03/21 09:43:49 UTC
[dubbo] branch master updated: polish: use java8 stream in merger
implement (#5861)
This is an automated email from the ASF dual-hosted git repository.
hyunkun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/master by this push:
new 062e543 polish: use java8 stream in merger implement (#5861)
062e543 is described below
commit 062e5432a88fdeb4c7fb3efe6b003eaad2a7d45d
Author: Huangxuny1 <gh...@gmail.com>
AuthorDate: Sat Mar 21 17:43:09 2020 +0800
polish: use java8 stream in merger implement (#5861)
---
.../rpc/cluster/merger/DoubleArrayMerger.java | 22 ++++++----------------
.../dubbo/rpc/cluster/merger/IntArrayMerger.java | 22 ++++++----------------
.../dubbo/rpc/cluster/merger/ListMerger.java | 16 ++++++++--------
.../dubbo/rpc/cluster/merger/LongArrayMerger.java | 22 ++++++----------------
.../apache/dubbo/rpc/cluster/merger/MapMerger.java | 8 +++-----
.../apache/dubbo/rpc/cluster/merger/SetMerger.java | 10 +++-------
6 files changed, 32 insertions(+), 68 deletions(-)
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/merger/DoubleArrayMerger.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/merger/DoubleArrayMerger.java
index 8026d8d..9dbe83a 100644
--- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/merger/DoubleArrayMerger.java
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/merger/DoubleArrayMerger.java
@@ -20,6 +20,9 @@ package org.apache.dubbo.rpc.cluster.merger;
import org.apache.dubbo.common.utils.ArrayUtils;
import org.apache.dubbo.rpc.cluster.Merger;
+import java.util.Arrays;
+import java.util.Objects;
+
public class DoubleArrayMerger implements Merger<double[]> {
@Override
@@ -27,21 +30,8 @@ public class DoubleArrayMerger implements Merger<double[]> {
if (ArrayUtils.isEmpty(items)) {
return new double[0];
}
- int total = 0;
- for (double[] array : items) {
- if (array != null) {
- total += array.length;
- }
- }
- double[] result = new double[total];
- int index = 0;
- for (double[] array : items) {
- if (array != null) {
- for (double item : array) {
- result[index++] = item;
- }
- }
- }
- return result;
+ return Arrays.stream(items).filter(Objects::nonNull)
+ .flatMapToDouble(Arrays::stream)
+ .toArray();
}
}
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/merger/IntArrayMerger.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/merger/IntArrayMerger.java
index 6d49834..da676de 100644
--- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/merger/IntArrayMerger.java
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/merger/IntArrayMerger.java
@@ -20,6 +20,9 @@ package org.apache.dubbo.rpc.cluster.merger;
import org.apache.dubbo.common.utils.ArrayUtils;
import org.apache.dubbo.rpc.cluster.Merger;
+import java.util.Arrays;
+import java.util.Objects;
+
public class IntArrayMerger implements Merger<int[]> {
@Override
@@ -27,22 +30,9 @@ public class IntArrayMerger implements Merger<int[]> {
if (ArrayUtils.isEmpty(items)) {
return new int[0];
}
- int totalLen = 0;
- for (int[] array : items) {
- if (array != null) {
- totalLen += array.length;
- }
- }
- int[] result = new int[totalLen];
- int index = 0;
- for (int[] array : items) {
- if (array != null) {
- for (int item : array) {
- result[index++] = item;
- }
- }
- }
- return result;
+ return Arrays.stream(items).filter(Objects::nonNull)
+ .flatMapToInt(Arrays::stream)
+ .toArray();
}
}
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/merger/ListMerger.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/merger/ListMerger.java
index 9c81854..d01f1f3 100644
--- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/merger/ListMerger.java
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/merger/ListMerger.java
@@ -20,9 +20,12 @@ package org.apache.dubbo.rpc.cluster.merger;
import org.apache.dubbo.common.utils.ArrayUtils;
import org.apache.dubbo.rpc.cluster.Merger;
-import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
public class ListMerger implements Merger<List<?>> {
@@ -31,13 +34,10 @@ public class ListMerger implements Merger<List<?>> {
if (ArrayUtils.isEmpty(items)) {
return Collections.emptyList();
}
- List<Object> result = new ArrayList<Object>();
- for (List<?> item : items) {
- if (item != null) {
- result.addAll(item);
- }
- }
- return result;
+ return Stream.of(items).filter(Objects::nonNull)
+ .flatMap(Collection::stream)
+ .collect(Collectors.toList());
+
}
}
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/merger/LongArrayMerger.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/merger/LongArrayMerger.java
index 52b090f..4583e06 100644
--- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/merger/LongArrayMerger.java
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/merger/LongArrayMerger.java
@@ -20,6 +20,9 @@ package org.apache.dubbo.rpc.cluster.merger;
import org.apache.dubbo.common.utils.ArrayUtils;
import org.apache.dubbo.rpc.cluster.Merger;
+import java.util.Arrays;
+import java.util.Objects;
+
public class LongArrayMerger implements Merger<long[]> {
@Override
@@ -27,21 +30,8 @@ public class LongArrayMerger implements Merger<long[]> {
if (ArrayUtils.isEmpty(items)) {
return new long[0];
}
- int total = 0;
- for (long[] array : items) {
- if (array != null) {
- total += array.length;
- }
- }
- long[] result = new long[total];
- int index = 0;
- for (long[] array : items) {
- if (array != null) {
- for (long item : array) {
- result[index++] = item;
- }
- }
- }
- return result;
+ return Arrays.stream(items).filter(Objects::nonNull)
+ .flatMapToLong(Arrays::stream)
+ .toArray();
}
}
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/merger/MapMerger.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/merger/MapMerger.java
index 9598ba7..484c4c2 100644
--- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/merger/MapMerger.java
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/merger/MapMerger.java
@@ -22,6 +22,8 @@ import org.apache.dubbo.rpc.cluster.Merger;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Stream;
public class MapMerger implements Merger<Map<?, ?>> {
@@ -31,11 +33,7 @@ public class MapMerger implements Merger<Map<?, ?>> {
return Collections.emptyMap();
}
Map<Object, Object> result = new HashMap<Object, Object>();
- for (Map<?, ?> item : items) {
- if (item != null) {
- result.putAll(item);
- }
- }
+ Stream.of(items).filter(Objects::nonNull).forEach(result::putAll);
return result;
}
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/merger/SetMerger.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/merger/SetMerger.java
index d2b7aeb..5b0dc5e 100644
--- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/merger/SetMerger.java
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/merger/SetMerger.java
@@ -21,7 +21,9 @@ import org.apache.dubbo.rpc.cluster.Merger;
import java.util.Collections;
import java.util.HashSet;
+import java.util.Objects;
import java.util.Set;
+import java.util.stream.Stream;
public class SetMerger implements Merger<Set<?>> {
@@ -31,13 +33,7 @@ public class SetMerger implements Merger<Set<?>> {
return Collections.emptySet();
}
Set<Object> result = new HashSet<Object>();
-
- for (Set<?> item : items) {
- if (item != null) {
- result.addAll(item);
- }
- }
-
+ Stream.of(items).filter(Objects::nonNull).forEach(result::addAll);
return result;
}
}