package com.test; import java.util.ArrayList; import java.util.Arrays; import java.util.List; class Interval { int start; int end; public Interval(int start, int end) { super(); this.start = start; this.end = end; } public int getStart() { return start; } public void setStart(int start) { this.start = start; } public int getEnd() { return end; } public void setEnd(int end) { this.end = end; } } public class IntervalTests { public static void main(String[] args) { Interval v1 = new Interval(5,6); Interval v2 = new Interval(5,8); Interval v3 = new Interval(6,6); Interval v4 = new Interval(7,6); Interval v5 = new Interval(8,14); Interval v6 = new Interval(8,11); List<Interval> list = new ArrayList<>(); list.add(v4); list.add(v5); list.add(v6); list.add(v1); list.add(v2); list.add(v3); System.out.println("List Start:"); for(Interval v : list){ System.out.println(v.start + " : " + v.end); } System.out.println("List Result:"); list.sort((Interval a, Interval b) -> ( a.start == b.start ? (a.end - b.end ):(a.start - b.start))); for(Interval v : list){ System.out.println(v.start + " : " + v.end); } System.out.println(""); System.out.println("List End:"); Interval[] arr = new Interval[6]; arr[0] = v4; arr[1] = v2; arr[2] = v3; arr[3] = v1; arr[4] = v5; arr[5] = v6; System.out.println("Array Start:"); for(Interval v:arr){ System.out.println(v.start + " : " + v.end); } Arrays.sort(arr,(Interval a, Interval b) -> ( a.start == b.start ? (a.end - b.end ):(a.start - b.start))); System.out.println("Sort Done"); System.out.println("Array Result:"); for(Interval v:arr){ System.out.println(v.start + " : " + v.end); } System.out.println("Array End:"); } }
Result:
List Start: 7 : 6 8 : 14 8 : 11 5 : 6 5 : 8 6 : 6 List Result: 5 : 6 5 : 8 6 : 6 7 : 6 8 : 11 8 : 14 List End: Array Start: 7 : 6 5 : 8 6 : 6 5 : 6 8 : 14 8 : 11 Sort Done Array Result: 5 : 6 5 : 8 6 : 6 7 : 6 8 : 11 8 : 14 Array End: