0

私はJavaプログラミングの初心者です。ユーザーからの特定の入力を、生成した配列リストに挿入/削除するにはどうすればよいですか。そして、それは形成された新しいリストを表示するはずです。私はすでにコードを持っていました..しかし、うまく機能していません..これが私のコードです:

import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.*;

class New1 {
    public static InputStreamReader r = new InputStreamReader (System.in);
    public static BufferedReader inp = new BufferedReader(r);

    public static void main (String args[]) throws Exception {
        ArrayList employees = new ArrayList();
        employees.add("A");
        employees.add("B");
        employees.add("C");
        employees.add("D");
        employees.add("E");

        Scanner scan1 = new Scanner (System.in);
        System.out.println ("Lists of Employees");
        System.out.println ("What do you want to do?:");
        System.out.println ("1 - Display list. \n2 - Insert New Name. \n3 - Delete an item. \n4 - Nothing." + "\n ");
        int task = scan1.nextInt();

        if (task==1) {
            System.out.println ("Contents of Employees:" + employees);
        } else if (task==2) {
            do {
                System.out.println("Current list is " + employees);
                System.out.println("Add more? (y/n) ");
                if (scan1.next().startsWith("y")) {
                    System.out.println("Enter : ");
                    employees.add(scan1.next());
                } else {
                    break;
                }
            } while (true);

            System.out.println("List is " + employees);
            String[] arr = employees.toArray(new String[0]);
            System.out.println("Array is " + Arrays.toString(arr));
        }
    }

ここで本当に助けが必要です。>.<

4

2 に答える 2

0

まず、コードにコンパイル時のエラーがいくつかあります。コードの最後の行で、「}」が欠落しています。クラスブロックは閉じられていません。

次に、以下の行を使用します。String [] arr =(String [])employees.toArray(new String [0]); String[]の代わりにarr=employees.toArray(new String [0]);

toArray(new String [0])はオブジェクトを返し、それを配列に格納します。したがって、配列に型キャストする必要があります。これで、正常に動作します。

于 2013-02-14T20:54:29.237 に答える
0

リストの初期化をパラメーター化する必要があります。そうしないと、次のコードがコンパイルされません。String[] arr = employees.toArray(new String[0]);

右辺の式を明示的ににキャストすることはできますがString[]、これは良い習慣ではなく、コンパイル時に潜在的なエラーをキャッチするジェネリックスの意図を無視します。

私はこれを行います:

List<String> employees = new ArrayList<String>();

の代わりに0、リストのサイズを使用して、作成される配列のサイズを初期化します。

String[] arr = employees.toArray(new String[employees.size()]);
于 2013-02-14T20:54:54.820 に答える