diff options
author | Dave Borowitz <dborowitz@google.com> | 2018-08-31 13:26:57 -0700 |
---|---|---|
committer | Dave Borowitz <dborowitz@google.com> | 2018-09-05 09:53:01 -0700 |
commit | 6724990a322180b493dab45c9e4a82862e0f9026 (patch) | |
tree | 51ecfbc3a2db01f8305775a9af133a27f9040767 /gerrit-gwtui-common | |
parent | 7a06549cdffffab00991ed58f55a97546dbe94ac (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')
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() /*-{ |