【发布时间】:2017-04-18 06:07:30
【问题描述】:
当我运行这个程序时:-
import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.Map;
public class try1 {
public static void main(String args[]) {
Map<String, Object> props = new HashMap<String, Object>();
props.putIfAbsent("videos", new LinkedHashSet<String>());
System.out.println(LinkedHashSet<String>(props.get("videos")).add("video_url");
}
}
我得到 3 个错误:-
try1.java:14: error: cannot find symbol
System.out.println(LinkedHashSet<String>(props.get("videos")).add("yoyo"));//.add("video_url");
^
symbol: variable LinkedHashSet
location: class try1
try1.java:14: error: cannot find symbol
System.out.println(LinkedHashSet<String>(props.get("videos")).add("yoyo"));//.add("video_url");
^
symbol: variable String
location: class try1
try1.java:14: error: cannot find symbol
System.out.println(LinkedHashSet<String>(props.get("videos")).add("yoyo"));//.add("video_url");
^
symbol: method add(String)
location: class Object
3 errors
我正在尝试将 HashMap 值用作 LinkedHashSet,但出现这些错误。我该怎么办?
【问题讨论】:
-
1 - 如果您只想将
LinkedHashSet放入您的Map,您应该将Object更改为Set。 2 - 你的System.out....行没有意义(你调用add的返回值是无效的,你尝试实例化一个LinkedHashSet而没有new),你想在这里做什么? -
LinkedHashSet<String>(props.get("videos")).add("yoyo")有一个基本语法错误,但不清楚您的意图。 -
@Dorian 在某些地方我需要 LinkedHashSet 而在某些地方我必须使用 String
-
@Dorian 有个错误我(我觉得很傻)
-
@VibhorVerma 我认为更容易访问(无需检查类型和演员表),可能更难更改值(
props.put("myKey", new LinkedHashSet<String>(Arrays.asList("myValue")))。如果你想增加价值,更容易:(我想 myKey 存在于地图中:props.get("myKey").add("valueToAdd"))
标签: java hashmap linkedhashset