一:概述

在java中,对集合的学习和掌握在开发中是很重要的,集合有可变的集合和不可变的集合。在使用中很容易出错。集合的种类比较多。

二:具体说明

<1>问题代码

 List<String> list =  List.of("a", "b", "c", "d", "e");
         System.out.println(list);
         list.add("Q");
         list.remove("a");
         list.set(0,"M");
         System.out.println(list);

<2>问题详细说明和解释

2.1问题详细说明

Exception in thread "main" java.lang.UnsupportedOperationException
	at java.base/java.util.ImmutableCollections.uoe(ImmutableCollections.java:142)
	at java.base/java.util.ImmutableCollections$AbstractImmutableCollection.add(ImmutableCollections.java:147)
	at space3v.yonghengyu.variableparameter.MyVariableParameter4.main(MyVariableParameter4.java:13)

Exception in thread "main" java.lang.UnsupportedOperationException 	at java.base/java.util.Immutable_List

2.2问题的原因以及解释

这个异常信息看起来是Java中的UnsupportedOperationException,通常发生在尝试修改不可变集合(Immutable Collection)的情况下。Immutable Collections是不可变的,意味着它们在创建后不能被修改。

根据你提供的异常信息,问题可能出现在你尝试向一个不可变集合添加元素时。在Java中,不可变集合是不能被修改的,因此调用添加元素的方法会导致UnsupportedOperationException异常。

要解决这个问题,你需要使用可变的集合(Mutable Collection)来存储和修改数据。你可以使用ArrayListLinkedList等可变集合类来代替不可变集合类。

以下是一个示例代码,使用ArrayList来存储数据:

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
     List<String> list =  new ArrayList<String>(List.of("a", "b", "c", "d", "e"));
         System.out.println(list);
         list.add("Q");
         list.remove("a");
         list.set(0,"M");
         System.out.println(list);
    }
}

请检查代码,确保正在使用可变集合来存储数据,而不是不可变集合。如果在使用不可变集合,尝试切换到可变集合来解决这个问题。