package test;
public class newlearn
{
public static <T extends Comparable<T>> T findMax(T[] input)
{
T max = input[0];
for(T e:input)
{
if(e.compareTo(max)>0)
max = e;
}
return max;
}
public static <E> void printArray(E[] input)
{
for(E e:input)
{
System.out.printf("%s ", e);
}
System.out.println();
}
public static void main(String[] args)
{
Integer [] intArray = {1, 2, 3, 4, 5};
Double [] doubleArray = {1.1, 1.2, 1.3, 1.4, 1.5};
String [] stringArray = {"apple", "banana", "orgin", "gold"};
person[] per = new person[3];
per[0] = new person("pyy", 19);
per[1] = new person("yzm", 20);
per[2] = new person("ljj", 18);
printArray(per);
System.out.println("年龄最大的人的信息如下:"+findMax(per));
printArray(intArray);
System.out.println("最大的整数是"+findMax(intArray));
printArray(doubleArray);
System.out.println("最大的浮点数是"+findMax(doubleArray));
printArray(stringArray);
System.out.println("首字母最靠后的是"+findMax(stringArray));
}
}
能够输出任意型的数组以及该数组的最大值;
package test;
public class person implements Comparable<person>
{
String name;
int age;
public person(String na, int a)
{
name = na;
age = a;
}
public String toString()
{
return "name:"+name+" age:"+age+" ";
}
@Override
public int compareTo(person o)
{
return age - o.age;
}
}
其中person类的toString方法进行重写来返回我们需要的格式,并且实现compareTo接口;
最后的输出结果如下:
name:pyy age:19 name:yzm age:20 name:ljj age:18
年龄最大的人的信息如下:name:yzm age:20
1 2 3 4 5
最大的整数是5
1.1 1.2 1.3 1.4 1.5
最大的浮点数是1.5
apple banana orgin gold
首字母最靠后的是orgin