从Java的Map中删除Class对象的键
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Java的Map中删除Class对象的键相关的知识,希望对你有一定的参考价值。
我有一个Map,键/值对由字符串和类对象Block
组成。 remove(Object key, Object value)
方法实际上无法删除指定的对象。
private static Map<String, ArrayList<Block>> stockInfo = new LinkedHashMap<>();
我的IDE向我提示,我在
Object value
数据字段中的输入“ 可能不包含'Block'类型的值“我缺少关于Java以及在方法中传递值的哪个基本概念?我只是用Java编写了短时间代码。
stockInfo.remove(symbolCode, (stockInfo.get(symbolCode)).get(0));
我有一个Map,键/值对由字符串和类对象Block组成。
不,你没有。
您声明了String
到类型为Block
的对象的collection的映射。特别是ArrayList
集合。
所以编译器拒绝您尝试删除字符串到块的条目,因为没有这样的条目。您的Map
中只有一个“阻止列表的字符串”条目。
Map<String, ArrayList<Block>> stockInfo = new LinkedHashMap<>();
字符串到块的映射看起来像这样:
Map< String, Block >
stockInfo.remove(symbolCode, (stockInfo.get(symbolCode)).get(0));
您要删除什么?如果您有三个块对象,例如:
Block block1 = new Block();
Block block2 = new Block();
Block block3 = new Block();
List list1 = new ArrayList();
list1.add(block1);
list1.add(block2);
List list2 = new ArrayList();
list2.add(block2);
list2.add(block3);
您的地图上有什么?像这样:
“” 12 ---> {block1,block2};“ 23” ---> {block2,block3};
您要使用键“ 12”删除对象block1吗?
以上是关于从Java的Map中删除Class对象的键的主要内容,如果未能解决你的问题,请参考以下文章
java - 如何在java中的map上保留两个迭代器并在没有ConcurrentModificationException的情况下删除它们之间的键