Logo

Programming-Idioms

This language bar is your friend. Select your favorite languages!
  • Java

Idiom #28 Sort by a property

Sort the elements of the list (or array-like collection) items in ascending order of x.p, where p is a field of the type Item of the objects in items.

import java.util.Arrays;
import java.util.Comparator;
Arrays.sort(items, new Comparator<Item>(){
	public int compare(Item a, Item b){
		return a.p - b.p;
	}
});

items is an array of type Item[].
Use an anonymous class which implements Comparator<Item>
import java.util.Comparator;
items.stream().sorted(Comparator.comparing(x -> x.p))
import static java.util.Comparator.comparing;
items.sort(comparing(a -> a.p));

`List` sort.
import java.util.Collections;
import java.util.Comparator;
Collections.sort(items, new Comparator<Item>(){
	@Override
	public int compare(Item a, Item b){
		return a.p - b.p;
	}
});

items is a List<Item>.
Use an anonymous class which implements Comparator<Item>.
import static java.util.Arrays.sort;
import static java.util.Comparator.comparing;
sort(items, comparing(x -> x.p));

Object array sort.
with Ada.Containers.Vectors;
use Ada.Containers;
declare
   function Compare_Function (Left, Right : Item) return Boolean is (Left.P < Right.P);
   
   package Item_Vector_Sorting is new Item_Vectors.Generic_Sorting (Compare_Function);

   use Item_Vector_Sorting;
begin
   Sort (Items);
end;

New implementation...
< >
programming-idioms.org