package com.github.axet.lookup.common; /** * Java Comparator has compare method with 'int compare(o1, o2)' result value. * You should read ita as less algorithm, who is less? * * o1 < o2 * * -1 points to low value for o1. 0 points for middle / equals. 1 points for o2 * low value * * if you need opposite (desk order) return opposite values. * * @author axet * */ public class LessCompare { static public int compareBigFirst(double o1, double o2, double val) { if (Math.abs(Math.abs(o1) - Math.abs(o2)) < val) return 0; return compareBigFirst(o1, o2); } // desc algorithm (high comes at first [0]) static public int compareBigFirst(int o1, int o2) { return new Integer(o2).compareTo(new Integer(o1)); } // desc algorithm (high comes at first [0]) static public int compareBigFirst(float o1, float o2) { return new Float(o2).compareTo(new Float(o1)); } static public int compareBigFirst(double o1, double o2) { return new Double(o2).compareTo(new Double(o1)); } // asc algorithm (low comes at first [0]) static public int compareSmallFirst(int o1, int o2) { return new Integer(o1).compareTo(new Integer(o2)); } static public int compareBigFirst(int o1, int o2, int val) { if (Math.abs(Math.abs(o1) - Math.abs(o2)) < val) return 0; return compareBigFirst(o1, o2); } static public int compareSmallFirst(double o1, double o2) { return new Double(o1).compareTo(new Double(o2)); } }