有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java数组。add()停止程序

我设法在数组中动态添加了一个元素,但不幸的是程序停止了。我怎样才能继续呢?谢谢大家!

List<String> messages = Arrays.asList("Mary", "Nadia!", "Drake");

System.out.println("Enter Costumer's Name:"); 
cust_name =in.next();
if(cust_name .equals("Mary"))
System.out.println("Already a member!");
else if (cust_name .equals("Nadia"))
System.out.println("Already a member!");
else if(cust_name .equals("Drake"))
System.out.println("Already a member!");
else
messages.add(in.next());
System.out.println("Not a member! " + cust_name + " just added.");


共 (2) 个答案

  1. # 1 楼答案

    Arrays.asList()返回一个固定大小List,我能想到的最简单的修复方法是-

    List<String> messages = new ArrayList<String>(
        Arrays.asList("Mary", "Nadia!", "Drake")
    ); // Creates a new (mutable) list.
    
  2. # 2 楼答案

    Arrays.asList返回的List大小是固定的。尝试添加将导致异常

    如果要将动态列表初始化为某些值,请执行以下操作:

    List<String> messages = new ArrayList<String>(Arrays.asList("Mary", "Nadia!", "Drake"));
    

    或者最好使用Google Guava's ^{}

    List<String> messages = Lists.newArrayList("Mary", "Nadia!", "Drake");