java - 列出异常 java.lang.UnsupportedOperationException
问题描述
java.lang.UnsupportedOperationException
尝试将新项目添加到列表时,我不断收到消息,例如 Items.add(p); 你能帮我理解为什么我会得到这个例外吗?
import java.util.Arrays;
import java.util.List;
public class Item {
int id; int price;
public Item(int id, int price) {
this.id = id;
this.price = price;
}
@Override
public String toString() {
return id + ":" + price;
}
public static void main(String[] args) {
List<Item> Items = Arrays.asList(new Item(1, 30), new Item(2, 50), new Item(2, 40) );
Item p = Items.stream().reduce(new Item(4,0),(p1, p2) -> {
p1.price += p2.price;
return new Item(p1.id, p1.price);
});
System.out.println(p);
Items.add(p);
Items.stream().parallel().reduce((p1,p2) -> p1.price > p2.price?p1:p2).ifPresent(System.out::println);
}
}
解决方案
Arrays.asList
方法返回由提供的数组支持的固定大小的列表。您不能从中添加或删除元素。
它返回实现接口的特殊类(非ArrayList
或)的对象。所有改变大小的方法都被实现为 throw 。LinkedList
List
java.lang.UnsupportedOperationException
如果您希望List
能够添加更多元素,请创建一个ArrayList
并将您的元素添加到其中。
推荐阅读
- c# - C# xml文件按id排序标签,但保存同名顺序
- javascript - 单击按钮时函数不调用ajax请求
- r - 如何删除包含特定字符的行
- c - 将 Mender.io 与 Azure IOT Hub 集成
- apache-kafka - 如何确保 Kafka 流正在聚合当天的数据
- typescript - Typescript Class inference with statics
- r - R - 从非工作目录中读取多个 csv 文件到列表中
- hadoop - Beeline/Hive/Hadoop 在一个简单的 DESC 表命令中停止(大延迟)
- python - Python:迭代包含列表值的字典
- java - 序列化对象数组