Java中如何向List末尾添加元素 解决Arrays.asList生成列表无法新增问题
问题原因
你调用Arrays.asList()得到的List本质是Arrays类内部的固定大小静态ArrayList实现,仅封装了传入的原数组作为视图,没有重写add/remove这类修改列表长度的方法,调用时会直接抛出UnsupportedOperationException,属于该方法的原生设计限制。
解决方法
方案(最通用):用标准java.util.ArrayList包装转换
把Arrays.asList()的返回值传入ArrayList的构造方法,就能得到支持完整增删改查能力的动态列表,你只需要修改InQueue类中inputList的初始化逻辑即可:
import java.util.*; public class InQueue { public static String[] inputArr = {"id", "+", "id", "*", "id"}; // 仅修改这一行,套一层ArrayList构造 public static List<String> inputList = new ArrayList<>(Arrays.asList(inputArr)); }
修改完成后就可以正常调用add方法添加元素,示例调用逻辑如下:
import java.util.*; public class Main{ public static void main(String[] args) { InQueue inQueue = new InQueue(); // 向列表末尾添加元素 InQueue.inputList.add("你要添加的字符"); // 打印验证结果 System.out.println(InQueue.inputList); } }
内容的提问来源于stack exchange,提问作者ANewProgrammer
相关产品推荐
相关产品推荐

