以下は、質問に対する回答として私が書いたプログラムです -
「ArrayList と Integer ラッパー クラスを使用して値を保存し、Scanner クラスを使用してコンソールから入力を読み取って要素を初期化します。プログラムを拡張して、ArrayList 内の n 個の最大値を識別します。」
import java.util.ArrayList;
import java.util.Scanner;
public class ArraylistInput {
/**
* @param args
*/
public static void main(String[] args) {
ArrayList<Integer> val = new ArrayList<Integer>();
Scanner in = new Scanner(System.in);
System.out.println("Enter the length of you Array List ");
int nos = in.nextInt();
// Recorrd the input numbers
for (int i = 0 ; i < nos; i++)
{
System.out.println("Enter values for the ArrayList ");
int Input = in.nextInt();
val.add(Input);
}
// Display the arraylist
for (int j = 0; j < nos; j++)
{
int x = val.get(j);
System.out.println("Index " + (j+1) + ": " + x);
}
System.out.println("How meny maximmum values do you want? ");
int max =0; // initial max value
int nmax = in.nextInt(); // number of maximum values
int length = val.size(); // size of the arraylist
// finding the maximum values in ascending order without sorting
for (int h = 1; h <= nmax ; h++)
{
for (int k=0;k < length; k++)
{
if (val.get (k) > max)
{
max = val.get(k);
}
}
System.out.println ("maximmum = " + max);
int z = val.indexOf(max); // removing the higest value after printing
val.remove(z);
}
}
}
出力とエラー:
配列リストの長さを入力してください
3
ArrayList の値を入力します
12
ArrayList の値を入力します
45
ArrayList の値を入力します
8
インデックス 1: 12 インデックス 2: 45 インデックス 3: 8
いくつの最大値が必要ですか?
2
最大 = 45
スレッド「メイン」での例外最大値 = 45 46)