-1

Arraylistインデックス位置から最大値を見つけるにはどうすればよいですか?

ArrayList ar = new ArrayList();
ar.add(2); // position 0
ar.add(4); // position 1
ar.add(12); // position 2
ar.add(10); // position 3
ar.add(12); // position 4

String obj = Collections.max(ar);
int index = ar.indexOf(obj);

System.out.println("obj max value is " + obj + " and index position is " + index);

上記のプログラムは、値12とインデックスpos​​ition を持つ最初の max オブジェクトとして出力を返すだけ2です。

しかし、私の実際の出力はインデックス位置2である必要があります4(最大値12が2つのインデックス位置に存在するため)。

4

5 に答える 5

1

リストを1回繰り返すだけで、最大数のインデックスをプッシュする別のリストがあります

于 2012-05-03T18:56:08.297 に答える
1

未テスト:

public static int maxIndex(List<Integer> list) {
  Integer i=0, maxIndex=-1, max=null;
  for (Integer x : list) {
    if ((x!=null) && ((max==null) || (x>max))) {
      max = x;
      maxIndex = i;
    }
    i++;
  }
  return maxIndex
}
// ...
maxIndex(Arrays.asList(1, 2, 3, 2, 1)); // => 2
maxIndex(Arrays.asList(null, null)); // => -1
maxIndex(new ArrayList<Integer>()); // => -1
于 2012-05-03T19:09:08.170 に答える
0

public static void main(String[] args){

    List<Integer> ar=new ArrayList<Integer>();
    ar.add(2); `adding the values in the list`
    ar.add(5);
    ar.add(6);
    ar.add(4);
    ar.add(6);
    ar.add(5);
    ar.add(6);

    int max=Collections.max(ar);

    while(ar.contains(max))
    {
        int i=ar.indexOf(max); 
        System.out.println("the index of 6:"+ar.indexOf(max));
        ar.set(i, -1);
        System.out.println(ar);
    }       

}

于 2012-05-04T08:28:57.693 に答える