laxiang 2009-03-26 20:27
浏览 291
已采纳

JAVA 如何搞定方法传任意参

int max(int[] data,int len)
{
int result=-1;
for(int i=0;i {
if(i==0)
{
result=0;
}
else
{
if(data[i]>data[result])
r=i;
}
}
}

有没有办法用一个max搞定所有的数据类型呢?(用Java语言)

  • 写回答

13条回答 默认 最新

  • rednaxelafx 2009-03-26 20:48
    关注

    或者加上泛型的通配符的话……
    [code="java"]import java.util.*;

    public class Util {
    public static T max(Iterable<? extends T> items, Comparator<? super T> comparator) {
    T maxItem = null;
    for (T obj : items) {
    if (null == maxItem || 0 < comparator.compare(obj, maxItem)) {
    maxItem = obj;
    }
    }
    return maxItem;
    }

    public static <T> T max(T[] items, Comparator<? super T> comparator) {
        T maxItem = null;
        for (T obj : items) {
            if (null == maxItem || 0 < comparator.compare(obj, maxItem)) {
                maxItem = obj;
            }
        }
        return maxItem;
    }
    
    public static void main(String[] args) {
        Comparator<Integer> comp = new Comparator<Integer>() {
            public int compare(Integer x, Integer y) {
                return x - y;
            }
    
            public boolean equals(Object obj) {
                return obj.getClass() == this.getClass();
            }
        };
    
        Integer[] array = new Integer[] { 2, 1, 4, 0, 3 };
        int maxOfArray = max(array, comp);
        System.out.println(maxOfArray); // 4
    
        Iterable<Integer> list = Arrays.asList(1, 3, 2, -1, 5, 0);
        int maxOfList = max(list, comp);
        System.out.println(maxOfList); // 5
    }
    

    }[/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(12条)

报告相同问题?

悬赏问题

  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真
  • ¥15 关于#c语言#的问题,请各位专家解答!