2016-08-12 6 views
-2

ここでは、tvalueは私のArrayListです。私は1から10までのArrayListに10個の数字を持っています。私はArrayList内の最後の3つの数字のインデックスを印刷して、リスト内の3つの最大の数字を取得するためにソートしたいと考えています。しかし、私は結果として不適切な値を得ています。誰か助けてくれますか?以下は、私のプログラムに関連するいくつかのサンプルコードです3つの最大数値のインデックスをArrayListに印刷するにはどうすればよいですか?

 Collections.sort(tvalue); 
     System.out.println(tvalue.get(tvalue.size()-1)); 
     System.out.println(tvalue.get(tvalue.size()-2)); 
     System.out.println(tvalue.get(tvalue.size()-3)); 
私はこのコードを使用してインデックスを取得することはできません

、 int型のインデックス= tvalue.indexOf(tvalue.get(tvalue.size() - 1)) ; System.out.println(index);

+0

、何のエラーをyougettingているの? –

+0

あなたはどんな出力を得ていますか? – basic

+0

すでに値をソートしているので、値を戻しているだけです。まったく新しい 'ArrayList'を作り、ソートしてください。 – MathBunny

答えて

0

既にリストをソートしているので、indexOfメソッドは機能しません。最初のArrayList(またはList)オブジェクトを作成し、値ですべてをコピーする必要があります。その後、上記のようにソートし、int index = initialList.indexOf(____)を実行します。ただ、コード内で、上記の説明入れる

1

List sortedValue = new ArrayList<>(tvalue); 
Collections.sort(sortedValue); 
for (int i=1; i<4; i++) { 
    System.out.println(tvalue.indexOf(tvalue.get(sortedValue.size() - i))); 
} 
関連する問題