[英]Removal of Class object key from Map in Java
I have a Map with a key/value pair made up of a string and class object Block
.我有一个 Map ,其键/值对由字符串和 class object
Block
组成。 The remove(Object key, Object value)
method fails to actually remove the object specified. remove(Object key, Object value)
方法无法真正删除指定的 object。
private static Map<String, ArrayList<Block>> stockInfo = new LinkedHashMap<>();
My IDE tips me off that my entry in the
Object value
data field " may not contain values of type 'Block' " What fundamental concept am I missing about Java and passing values in methods?我的 IDE 提示我,我在
Object value
数据字段中的条目“可能不包含‘块’类型的值”关于 ZD52387880E1EA22817A71ZD37592138 中的方法和传递值,我缺少什么基本概念? I have only been coding in Java for a short period.我只在 Java 中编码了很短的时间。
stockInfo.remove(symbolCode, (stockInfo.get(symbolCode)).get(0));
I have a Map with a key/value pair made up of a string and class object Block.
我有一个 Map,其键/值对由字符串和 class object 块组成。
No, you don't.不,你没有。
You declared a mapping of String
to a collection of objects of type Block
.您声明了
String
到Block
类型对象集合的映射。 Specifically an ArrayList
collection.特别是
ArrayList
集合。
So the compiler refuses your attempt to remove a string-to-block entry because there are no such entries.因此编译器拒绝您删除字符串到块条目的尝试,因为没有这样的条目。 You have only string-to-list-of-blocks entries in your
Map
.您的
Map
中只有 string-to-list-of-blocks 条目。
Map<String, ArrayList<Block>> stockInfo = new LinkedHashMap<>();
A mapping of string to block would look like this:字符串到块的映射如下所示:
Map< String, Block >
stockInfo.remove(symbolCode, (stockInfo.get(symbolCode)).get(0));
What do you want to remove?你想删除什么? if you have three block objects, eg:
如果您有三个块对象,例如:
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);
what is in your map?你的 map 里有什么? like this:
像这样:
"12" ---> {block1, block2}; "12" ---> {block1, block2}; "23" ---> {block2, block3};
"23" ---> {block2, block3};
you want to delete the object block1 with the key "12"?你想用“12”键删除 object block1 吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.