長さ 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;
}
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;
}
}
この時点で、配列内の最大値のインデックスが得られます。複数の最大値がある場合は、インデックスの配列を格納できます。
これが私の提案です。間違っている場合は修正してください。
int max 0
for(i=0; i<X; i++){
if(array[i]).isLessThan(array[i+1]))
max = i+1;
else
max = i
}
学術的な関心のためのより複雑なソリューション:):
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;
}
}