# 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.

a drawn cute bird pointing at a graph that shows positive results

# Properties

Property Value
Rule ID UseListSort
First seen in jSparrow version 3.6.0
Minimum Java version 8
Remediation cost 2 min