Java 如何使用HashMap作为LinkedHashSet

Java 如何使用HashMap作为LinkedHashSet,java,hashmap,linkedhashset,Java,Hashmap,Linkedhashset,当我运行此程序时:- 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>(); prop

当我运行此程序时:-

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");

    }
}
import java.util.HashMap;
导入java.util.LinkedHashSet;
导入java.util.Map;
公共类try1{
公共静态void main(字符串参数[]){
Map props=newhashmap();
props.putIfAbsent(“视频”,新LinkedHashSet());
System.out.println(LinkedHashSet(props.get(“视频”)).add(“视频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
try1.java:14:错误:找不到符号
System.out.println(LinkedHashSet(props.get(“videos”)).add(“yoyo”);/.add(“videou url”);
^
符号:变量LinkedHashSet
地点:try1类
java:14:错误:找不到符号
System.out.println(LinkedHashSet(props.get(“videos”)).add(“yoyo”);/.add(“videou url”);
^
符号:变量字符串
地点:try1类
java:14:错误:找不到符号
System.out.println(LinkedHashSet(props.get(“videos”)).add(“yoyo”);/.add(“videou url”);
^
符号:方法添加(字符串)
位置:类对象
3个错误

我试图将HashMap值用作LinkedHashSet,但出现以下错误。我该怎么办?

正确的代码如下所示:

public static void main(String[] args) {
        Map<String, Object> props = new HashMap<String, Object>();
        props.putIfAbsent("videos", new LinkedHashSet<String>());
        System.out.println(((LinkedHashSet)(props.get("videos"))).add("video_url"));
    }
publicstaticvoidmain(字符串[]args){
Map props=newhashmap();
props.putIfAbsent(“视频”,新LinkedHashSet());
System.out.println(((LinkedHashSet)(props.get(“视频”)).add(“视频url”));
}

如果语法有错误,首先需要将对象转换为LinkedHashSet,然后向其中添加字符串

   System.out.println( ((LinkedHashSet<String>)(props.get("videos")) ).add("video_url") );
System.out.println(((LinkedHashSet)(props.get(“视频”)).add(“视频url”));

我想您应该使用java.util.LinkedList作为Map的值

Map<String, List<String>> props = new HashMap<>();
props.putIfAbsent("videos", new LinkedList<String>());
props.get("videos").add("video_url");
System.out.println(props);
Map props=newhashmap();
props.putIfAbsent(“视频”,新LinkedList());
道具。获取(“视频”)。添加(“视频url”);
系统输出打印(道具);
但是如果你想使用一个映射,它的迭代顺序与put顺序相同

Map<String, String> props = new LinkedHashMap<>();
props.putIfAbsent("videos", "video_url");
System.out.println(props);
Map props=newlinkedhashmap();
道具。putIfAbsent(“视频”、“视频url”);
系统输出打印(道具);

1-如果您只想在
Map
中放置
LinkedHashSet
,您应该将
Object
更改为
Set
。2-您的
系统。out….
行没有意义(您在无效的返回值上调用
add
,您尝试在没有新的情况下引用
LinkedHashSet
),您想在这里做什么?您在
LinkedHashSet(props.get(“videos”))处有一个基本语法错误。添加(“yoyo”)
但不清楚您的意图。@Dorian在某些地方我需要LinkedHashSet,在某些地方我必须使用它String@Dorian有一个错误我(我认为这是一个愚蠢的错误)@VibhorVerma更容易访问我认为(无需检查类型和强制转换),可能更难更改值(
props.put(“myKey”),新的LinkedHashSet(Arrays.asList(“myValue”))
)。如果您想添加值,更容易:(我假设myKey存在于映射中:
props.get(“myKey”)。添加(“valueToAdd”)
)这并没有解决OP代码中的基本语法错误。你是对的,但我需要通过添加更多视频url来更新它,在某些地方,我需要HashMap值作为字符串,所以值作为对象的外观good@VibhorVerma您可以获取
列表的第一个元素
以获取
字符串
值(
props.get(“key”).stream().first().orElse(“列表中无值”);
),它比存储
对象
,有时
设置
,有时
字符串
,然后检查类型并转换为它要好得多。@Dorian,谢谢你这提供了一种方法,我该如何解决这个问题:)@liuzhengyang,