public class ArrayAlg{
/**
* 限定传入的类型必须实现Comparable接口,传入不定个数的数组
* @param a
* @param <T>
* @return 返回的是静态内部类,实现返回多个参数
*/
public static <T extends Comparable> Pair<T> minmax(T...a){
if(a==null||a.length==1)return null;
T min=a[0];
T max=a[0];
for(T t:a){
if(t.compareTo(min)<0)min=t;
if(t.compareTo(max)>0)max=t;
}
return new Pair<>(min,max);
}
/*泛型通用查找最小值函数
public static <T extends Comparable> T min(T[] array){
T min=array[0];
for(T t:array){
if(min.compareTo(t)>0)min=t;
}
return min;
}*/
static class Pair<T>{
private T first;
private T second;
public Pair(){
}
public Pair(T first,T second){
this.first=first;
this.second=second;
}
public T getFirst(){
return first;
}
public void setFirst(T first){
this.first=first;
}
public T getSecond(){
return second;
}
public void setSecond(T second){
this.second=second;
}
}
}
class test{
public static void main(String[] argv){
ArrayAlg.Pair pair=ArrayAlg.minmax("asd","g","c","ghk");
System.out.println("最小值"+pair.getFirst()+" 最大值:"+pair.getSecond());
}
}