Java 从地图检索

Java 从地图检索,java,collections,Java,Collections,我有一张如下的地图:- HashMap<String, Set<String>> mapList; mapList.forEach((k, v) -> { System.out.println("URL" + k); Set<String> s = mapList.get(k); s.forEach(e -> { System.out.print(e); }); }); HashMap映射列表;

我有一张如下的地图:-

HashMap<String, Set<String>> mapList;
mapList.forEach((k, v) -> {
    System.out.println("URL" + k);
    Set<String> s = mapList.get(k);
    s.forEach(e -> {
        System.out.print(e);
    });
});
HashMap映射列表;
我正在检索数据,如下所示:-

HashMap<String, Set<String>> mapList;
mapList.forEach((k, v) -> {
    System.out.println("URL" + k);
    Set<String> s = mapList.get(k);
    s.forEach(e -> {
        System.out.print(e);
    });
});
mapList.forEach((k,v)->{
System.out.println(“URL”+k);
设置s=mapList.get(k);
s、 forEach(e->{
系统输出打印(e);
});
});

有更好的方法吗?

您可以为第二个
forEach
使用方法引用,并且您正在执行一个不必要的
映射列表。获取
-您已经拥有该值

forEach((k, v) -> {
    System.out.println("URL" + k);
    v.forEach(System.out::print);
});

我认为您正在寻找:

mapList.forEach((k, v) -> System.out.println("URL " + k + ", values : " + v)));
将输出以下内容:

URL,值:[a,b]
URL,值:[c,d]


您不需要执行
mapList.get(k)。您在
v
中已经有了该值。它不一样,但很接近。它不一样的原因是因为在没有分隔符的情况下打印集合的所有元素是没有意义的。只有在键是基本URL,然后集合包含所有get参数定义的情况下才有意义,例如:
k=http://example.com?
v=[user=dbl,app=so,thread=52760941]
但是应该动态添加符号。例如:
mapList.forEach((k,v)->System.out.println(“URL:”+k+“?”+v.stream().collect(收集器.连接(&))->URL: