我有一个数字长度为X的数组(“32”,“49”,“2”,...),我需要找到该数组中最大的数字并返回位置(数组[3]是最大的数字)
是否有像array [0] .isLessThan(array [3])这样的库?或类似的东西?
到目前为止计划:
int max 0
for(i=1; i<X; i++){
if(array(max).isLessThan(array[i]))
max = i;
}
答案 0 :(得分:2)
我建议您在比较两个值时将值转换为整数。
您需要跟踪最大值和索引。此解决方案假设所有值都是非负的(因为我将max设置为-1),但您可以轻松地将max更改为int min或类似的值。
int max = -1;
int index = -1;
for (int i = 0; i < array.Length; i++)
{
int value = Integer.parse(array[i]);
if (value > max)
{
max = value;
index = i;
}
}
此时,您拥有数组中最高值的索引。如果有多个最大值,则可以存储索引数组。
答案 1 :(得分:0)
这是我的建议。如果我错了,请纠正我。
int max 0
for(i=0; i<X; i++){
if(array[i]).isLessThan(array[i+1]))
max = i+1;
else
max = i
}
答案 2 :(得分:-1)
为了学术兴趣,一个更复杂的解决方案:):
public static void main(String[] args) {
String[] anArrayOfStrings={"199999","32", "33",
"10000","45","99999","72987","0","92"};
Test test=new Test();
Test.CX cx=test.new CX();
java.util.Arrays.sort(anArrayOfStrings,cx) ;
System.out.println("Item="+anArrayOfStrings[(anArrayOfStrings.length-1)]);
}
class CX<String> implements Comparator{
@Override
public int compare(Object arg0, Object arg1) {
if( Integer.parseInt((java.lang.String) arg0) >
Integer.parseInt((java.lang.String) arg1)){
return 1;
}else if(Integer.parseInt((java.lang.String) arg0) <
Integer.parseInt((java.lang.String) arg1)){
return -1;
}
return 0;
}
}