我是Java编程的新手。我想问一下如何将用户的某些输入插入/删除到我生成的arraylist中。它应该显示我已经有一个代码形成的新列表..但它运行不正常..这是我的代码:
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));
}
}
我真的需要帮助。 >。<
答案 0 :(得分:0)
首先,代码中存在一些编译时错误。 在最后一行代码中,'}'丢失了。类块未关闭。
第二,使用下面的行, String [] arr =(String [])employees.toArray(new String [0]); 代替 String [] arr = employees.toArray(new String [0]);
asArray(new String [0])将返回一个对象,并将其存储在数组中。所以,你必须将它强制转换为数组。现在,它可以正常工作。
答案 1 :(得分:0)
您应该参数化列表初始化,否则以下代码将无法编译:{{1}}
虽然您可以将右侧表达式显式地转换为String[] arr = employees.toArray(new String[0]);
,但这不是一个好习惯,并且忽略了泛型在编译时捕获潜在错误的意图。
我会这样做:
String[]
而不是List<String> employees = new ArrayList<String>();
,将使用list的大小来初始化正在创建的数组的大小:
0