package xmp_func;

import java.awt.geom.Ellipse2D;
import java.util.Comparator;
import java.util.Arrays;

public class MyEllipseComp implements Comparator<Ellipse2D.Double> {

	@Override
	public int compare(Ellipse2D.Double arg0, Ellipse2D.Double arg1) {
		int retVal = 0;
		double area0 = /* Math.PI */ arg0.width * arg0.height /* /4 */;
	    double area1 = /* Math.PI */ arg1.width * arg1.height /* /4 */;
	    if(area0 < area1) retVal = -1;
	    else if(area0 > area1) retVal = 1;
	    return retVal;
	}

	public static void main(String[] args) {

		Ellipse2D.Double[ ] circles = {
			new Ellipse2D.Double(4, 7, 12, 12),
			new Ellipse2D.Double(5, 11, 16, 16),
			new Ellipse2D.Double(2, 65, 10, 10),
			new Ellipse2D.Double(7, 12, 1, 1),
			new Ellipse2D.Double(12, 6, 15, 15),
			new Ellipse2D.Double(34, 2, 14, 14) } ;

		Arrays.sort(circles, new MyEllipseComp());
		for(Ellipse2D.Double e : circles) { System.out.print(e.width + " "); }
		System.out.println();

	}

}