看这个吧,我测试过了,是按我上面理解的意思。最上面的程序少了两句话。
import java.util.*;
public class ArrayCompare{
private ArrayList index = new ArrayList();
private ArrayList _index = new ArrayList();
public ArrayList<Integer> compare(int [] a,int [] b,int [] c){
for(int i =0;i<a.length;i++){
_index.add(i);
}
check(a);
if(index.size() == 1)
return index;
check(b);
if(index.size() == 1)
return index;
check(c);
return index;
}
public void check(int [] x){
index.clear();
int max = x[((Integer)_index.get(0)).intValue()];
for(Integer i : _index){
int ii = i.intValue();
if(x[ii]>max){
max=x[ii];
index.clear();
}
if(x[ii] == max)
index.add(ii);
}
_index.clear();
_index.addAll(index);
}
public static void main(String [] args)throws Exception{
ArrayCompare ac = new ArrayCompare();
int []a = new int[]{0,2,3,3,2,3,1};
int []b = new int[]{2,3,7,6,4,7,8};
int []c = new int[]{2,3,4,2,1,0,3};
ArrayList<Integer> aa = ac.compare(a,b,c);
for(Integer i : aa){
int ii = i.intValue();
System.out.println(a[ii]);
System.out.println(b[ii]);
System.out.println(c[ii]);
}
}
}