# Replace Collection.sort with List.sort
# Description
Replace static invocations of Collections.sort(List, Comparator)
with List.sort(Comparator)
.
# Benefits
Improves the readability by utilizing the Java 8 extensions of the List
API.
# Tags
# Code Changes
# Static Sort Invocation
Pre
public void sortUsersById(List<User> users) {
Collections.sort(users, (User o1, User o2) -> o1.getId() - o2.getId());
}
Post
public void sortUsersById(List<User> users) {
users.sort((User o1, User o2) -> o1.getId() - o2.getId());
}
# Inline Comparator Implementation
Pre
public void sortUsersById(List<User> users) {
Collections.sort(users, new Comparator<User>() {
@Override
public int compare(User o1, User o2) {
return o1.getId() - o2.getId();
}
});
}
Post
public void sortUsersById(List<User> users) {
users.sort(new Comparator<User>() {
@Override
public int compare(User o1, User o2) {
return o1.getId() - o2.getId();
}
});
}
# Comparator Reference
Pre
public void sortUsersById(List<User> users) {
Comparator<User> comparator = (User o1, User o2) -> o1.getId() - o2.getId();
Collections.sort(users, comparator);
}
Post
public void sortUsersById(List<User> users) {
Comparator<User> comparator = (User o1, User o2) -> o1.getId() - o2.getId();
users.sort(comparator);
}
Use a Java Refactoring Tool
No license required
You can review this refactoring on your code without a license by installing jSparrow to your Eclipse IDE. Install the plug-in from Eclipse IDE: Eclipse Marketplace.
System-wide Refactoring
Do you want to automate this refactoring (and many more) to your system-wide code? The automatic application of this system-wide refactoring can be unlocked by acquiring your jSparrow license.
# Properties
Property | Value |
---|---|
Rule ID | UseListSort |
First seen in jSparrow version | 3.6.0 |
Minimum Java version | 8 |
Remediation cost | 2 min |