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 回答