如题:求任意数据类型(注意任意)数组的最大值和最小值,实现容易,但是面对各种数据格式,需要做到代码简洁!
package test; import javafx.util.Pair; /** * 求任意类型数组的最大值和最小值--这么多类型的数组,需要增加冗余代码 * @Description: TODO(用一句话描述该文件做什么) * @author min.zhang-2 * @date 2018年1月4日 下午3:19:40 * @version V1.0 */ public class PairTest { public static void main(String[] args) { String[] arrayStrings = new String[]{"4","9","1","8","2"}; Pair<String, String> result = ArrayLog.getMinMax(arrayStrings); System.out.println(result.getKey()); System.out.println(result.getValue()); String reString = ArrayLog.getMin(arrayStrings); System.out.println(reString); Integer[] integers = {4,9,1,8,2}; Pair<Integer, Integer> result2 = ArrayLog.getMinMax(integers); System.out.println(result2.getKey()); System.out.println(result2.getValue()); } } class ArrayLog { public static <T extends Comparable> Pair<T,T> getMinMax(T[] str){ if(str == null || str.length == 0){ return null; } T min = str[0]; T max = str[0]; for(int i = 0;i < str.length; i++) { if(min.compareTo(str[i]) >= 0) { min = str[i]; } if(max.compareTo(str[i]) <= 0) { max = str[i]; } } return new Pair<>(min, max); } public static <T extends Comparable> T getMin(T[] str){ if(str == null || str.length == 0){ return null; } T min = str[0]; for(int i = 0;i < str.length; i++) { if(min.compareTo(str[i]) >=0) { min = str[i]; } } return min; } }