質問: {2,2,2,2,2} など)ばかりで、String型の入力値をバブルソートで表示する、というヒントがなかなか載っていません。 いいアイデアがありましたら、教えていただけると嬉しいです。 よろしくお願い致します。
回答: 基本的に 連続で使用するIO関連( `Reader` / `InputStream` / `Scanner` / `Writer` ) などはオブジェクトをループ内で生成しないでください。 ``` /* package whatever; // don't place package name! */ import java.util.*; import java.lang.*; import java.io.*; /* Name of the class has to be "Main" only if the class is public. */ class Ideone { public static void main (String[] args) throws java.lang.Exception { List list= new ArrayList<>(); String mozi=null; Scanner scanner = new Scanner(System.in); do { if(mozi != null) { list.add(mozi); } System.out.print("文字を入力してください : "); mozi = scanner.nextLine(); System.out.println(); } while(!mozi.equals("end") && scanner.hasNextLine()); System.out.println(list); Collections.sort(list); // ここは自分で書きなおしてください。 System.out.println(list); } } ``` のようにループ前に生成してください。 ※ クローズ処理とか省いているので課題の場合このままでは減点対象なので `try catch finaly` はご自分で対応してください。