summaryrefslogtreecommitdiffstats
path: root/gerrit-gwtui-common
diff options
context:
space:
mode:
authorDave Borowitz <dborowitz@google.com>2018-08-31 13:26:57 -0700
committerDave Borowitz <dborowitz@google.com>2018-09-05 09:53:01 -0700
commit6724990a322180b493dab45c9e4a82862e0f9026 (patch)
tree51ecfbc3a2db01f8305775a9af133a27f9040767 /gerrit-gwtui-common
parent7a06549cdffffab00991ed58f55a97546dbe94ac (diff)
Avoid Collections#sort
With the introduction of default methods in Java 8, Java finally grew a List#sort method that can be used in place of the static Collections#sort. Convert simple in-place sorts that need to be in-place sorts to use this method where possible. During the course of this change, it became obvious that many instances of sort were just sorting a newly-created ArrayList in place. These can be replaced with more idiomatic Stream constructions, sometimes even eliminating a loop to populate the list. One difference between List#sort and Collections#sort is there is no List#sort() with no arguments; callers must always pass either naturalOrder() or a null comparators. In this change, there were so few remaining instances of sorting by natural order that typing naturalOrder() didn't seem too repetitious, and it is quite readable. Change-Id: I4d89421a72127e9a36cbd32aeac425c0471a1b3f
Diffstat (limited to 'gerrit-gwtui-common')
-rw-r--r--gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/ChangeInfo.java6
-rw-r--r--gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/FileInfo.java4
-rw-r--r--gerrit-gwtui-common/src/main/java/com/google/gerrit/client/rpc/NativeMap.java8
3 files changed, 6 insertions, 12 deletions
diff --git a/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/ChangeInfo.java b/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/ChangeInfo.java
index 3587bf8519..0f786a6d66 100644
--- a/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/ChangeInfo.java
+++ b/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/ChangeInfo.java
@@ -32,7 +32,6 @@ import com.google.gwt.core.client.JsArrayString;
import com.google.gwtjsonrpc.client.impl.ser.JavaSqlTimestamp_JsonSerializer;
import java.sql.Timestamp;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -448,9 +447,8 @@ public class ChangeInfo extends JavaScriptObject {
public static void sortRevisionInfoByNumber(JsArray<RevisionInfo> list) {
final int editParent = findEditParent(list);
- Collections.sort(
- Natives.asList(list),
- comparing(r -> !r.isEdit() ? 2 * (r._number() - 1) + 1 : 2 * editParent));
+ Natives.asList(list)
+ .sort(comparing(r -> !r.isEdit() ? 2 * (r._number() - 1) + 1 : 2 * editParent));
}
public static int findEditParent(JsArray<RevisionInfo> list) {
diff --git a/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/FileInfo.java b/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/FileInfo.java
index 345a260cee..fc3dbf1b04 100644
--- a/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/FileInfo.java
+++ b/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/info/FileInfo.java
@@ -19,7 +19,6 @@ import com.google.gerrit.common.data.FilenameComparator;
import com.google.gerrit.reviewdb.client.Patch;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArray;
-import java.util.Collections;
import java.util.Comparator;
public class FileInfo extends JavaScriptObject {
@@ -55,8 +54,7 @@ public class FileInfo extends JavaScriptObject {
public final native void _row(int r) /*-{ this._row = r }-*/;
public static void sortFileInfoByPath(JsArray<FileInfo> list) {
- Collections.sort(
- Natives.asList(list), Comparator.comparing(FileInfo::path, FilenameComparator.INSTANCE));
+ Natives.asList(list).sort(Comparator.comparing(FileInfo::path, FilenameComparator.INSTANCE));
}
public static String getFileName(String path) {
diff --git a/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/rpc/NativeMap.java b/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/rpc/NativeMap.java
index 4b170687c9..41306ff2fd 100644
--- a/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/rpc/NativeMap.java
+++ b/gerrit-gwtui-common/src/main/java/com/google/gerrit/client/rpc/NativeMap.java
@@ -14,11 +14,12 @@
package com.google.gerrit.client.rpc;
+import static java.util.stream.Collectors.toCollection;
+
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArray;
import com.google.gwt.user.client.rpc.AsyncCallback;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
import java.util.Set;
@@ -57,10 +58,7 @@ public class NativeMap<T extends JavaScriptObject> extends JavaScriptObject {
}
public final List<String> sortedKeys() {
- Set<String> keys = keySet();
- List<String> sorted = new ArrayList<>(keys);
- Collections.sort(sorted);
- return sorted;
+ return keySet().stream().sorted().collect(toCollection(ArrayList::new));
}
public final native JsArray<T> values() /*-{