当前位置: 首页 > 知识库问答 >
问题:

无法将设置转换为地图[关闭]

商迪
2023-03-14

我正在尝试创建字符串及其长度的映射。key长度valuestring

public class Task2 {
    public static void main(String[] args) {

        final var strings = new HashSet<>(Arrays.asList("one", null, "three", null, "five"));

        System.out.println("Filter HashSet: ");

        Map<String, String> result = strings.stream()
                .filter(Objects::nonNull)
                .map(String::length)
                .collect(Collectors.toMap();
        
    }
}

共有3个答案

景震博
2023-03-14

如果您想获取键是字符串“一”、“三”、“五”并且值是相应字符串的长度的映射,那么您可以使用

        Map<String, String> result = strings.stream()
                .filter(Objects::nonNull)             
                .collect(Collectors.toMap(k->k, String::length));
常茂
2023-03-14
final var strings = new HashSet<>(Arrays.asList("one", null, "three", null, "five",null,"six"));
    
System.out.println("Filter HashSet: ");   
Map<Object, List<String>> result = strings.stream()
                    .filter(Objects::nonNull)
                    .collect(Collectors.groupingBy(x->x.length()));
 System.out.println(result);

输出:

Filter HashSet: 
{3=[six, one], 4=[five], 5=[three]}
阎伟志
2023-03-14

这里的键是字符串的长度,值是字符串本身

Map至少需要两个参数。关键和价值。如果需要长度和字符串,则map必须是整数类型。第三个参数是一个合并函数,以防字符串长度相同。它只是附加它们,用逗号分隔。

final var strings = new HashSet<>(
        Arrays.asList("one", null, "three", null, "five", "six", "four"));

System.out.println("Filter HashSet: ");

Map<Integer, String> result =
        strings.stream().filter(Objects::nonNull).collect(
                Collectors.toMap(a -> a.length(), a->a, (a,b)->a + ", " + b));

result.entrySet().forEach(System.out::println);

指纹

Filter HashSet: 
3=six, one
4=four, five
5=three

 类似资料:
  • 问题内容: 我试图在Go中创建一个通用方法,该方法将填充来自的使用数据。例如,方法签名和用法可能类似于: 我知道可以使用JSON作为中介来完成;还有另一种更有效的方法吗? 问题答案: 最简单的方法是使用https://github.com/mitchellh/mapstructure 如果您想自己做,则可以执行以下操作: http://play.golang.org/p/tN8mxT_V9h

  • 我有这样一个代码: 你能帮我完成代码库吗?

  • 我正在尝试编写代码来掩盖嵌套的json字段。 从...调用此方法。 我在尝试迭代嵌套的json对象时出错... 无法转换scala类型的值。有些要键入scala.collection.mutable.Map 如何以这种方式递归复杂的嵌套json对象?

  • 我正在努力使用Vavr将的减少为一个 有人能提供如何使用/的示例吗?

  • 我有一张这样的地图<代码>地图 钥匙是数字1,2,3,4。。。学生对象是: 我想做的是把它转换成地图 我可以使用这些代码对地图进行分组,但summingDouble不适用于BigDecimal。此外,我无法将我的studentMap转换为StudentInfo地图:( 我的学生信息对象是:

  • 问题内容: 我正在尝试将文件保存到SQL Server数据库中,该文件将保存在其中的列是datatype 。 我目前这样做的方式是通过获取文件路径并将文件转换为字节数组。 然后,我使用插入查询和convert函数将字节插入数据库,以将转换为: 但是,在SQL Server数据库中,的值始终为 而且,无论选择哪个文件,都始终是该数字。因此,如果您能告诉我为什么会这样,以及我应该采取什么措施来防止这种