chen-w
8/10/2017 - 9:55 PM

comparator

comparator

以下两种方法都可以
Collections.sort(intervals, (Interval a, Interval b) -> (a.start - b.start));
intervals.sort((Interval a, Interval b) -> (a.start - b.start));

classic way:
Comparator<Developer> byName = new Comparator<Developer>() {
	@Override
	public int compare(Developer o1, Developer o2) {
		return o1.getName().compareTo(o2.getName());
	}
};

Collections.sort(listDevs, new Comparator<Developer>() {
			@Override
			public int compare(Developer o1, Developer o2) {
				return o1.getAge() - o2.getAge();
			}
		});



java8:
Comparator<Developer> byName =
	(Developer o1, Developer o2)->o1.getName().compareTo(o2.getName());
	
listDevs.sort((Developer o1, Developer o2)->o1.getAge()-o2.getAge());


More example:
//sort by age
Collections.sort(listDevs, new Comparator<Developer>() {
	@Override
	public int compare(Developer o1, Developer o2) {
		return o1.getAge() - o2.getAge();
	}
});

//lambda
listDevs.sort((Developer o1, Developer o2)->o1.getAge()-o2.getAge());

//lambda, valid, parameter type is optional
listDevs.sort((o1, o2)->o1.getAge()-o2.getAge());