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

如何在java lambda中将String[]转换为以数组索引作为求和值的映射?

丌官高远
2023-03-14

我有以下内容

new ConstructStateMachine(new String[] {
      "a", "b", "c", "aa", "d", "b"
}, 1, 5);

并且我想将这个数组转换为map

indices | 0 | 1 | 2 | 3  | 4 | 5 |
item    | a | b | c | aa | d | b |
value   | 1 | 2 | 3 | 4  | 5 | 6 |
// pseudo-code
Map<String, Integer> dictionary = new HashMap<>(
   ("b"  => 8) // because "b" appeared in index 1 and 5
   ("c"  => 3)
   ("aa" => 4)
   ("d"  => 5)
);
Map < String, List < Integer >> table = new HashMap < > ();


// I thought of doing an intersection of two arrays and get the value from there
// but that just made things more complicated
String[] a = (Arrays.stream(dictionary)
  .filter(x - > Arrays.stream(newDis)
    .anyMatch(y - > Objects.equals(y, x))
  )
).toArray(String[]::new);


// in here, I tried looping and created the value that starts from 1 to 6, rather than
// from 0 to 5
IntStream.range(0, this.newDis.length).forEach(idx - > {
  List<Integer> currentValue = table.computeIfAbsent(newDis[idx], k - > new ArrayList<>());
  currentValue.add(idx + 1);
});

但我无法将字符串数组转换为map

共有1个答案

徐英锐
2023-03-14
String[] array = new String[] {"a", "b", "c", "aa", "d", "b"};
Map<String, Integer> result =
    IntStream.range(0, array.length)
             .boxed()
             .collect(Collectors.toMap(i -> array[i], i -> i + 1, Integer::sum));

或者,使用一个简单的循环,使代码更可重复和直观,imo:

Map<String, Integer> result = new HashMap<>();
for (int i = 0; i < array.length; i++) {
    result.merge(array[i], i + 1, Integer::sum);
}
 类似资料:
  • 本文向大家介绍在Java中将String的ArrayList转换为String数组,包括了在Java中将String的ArrayList转换为String数组的使用技巧和注意事项,需要的朋友参考一下 首先,让我们设置字符串的ArrayList- 现在,使用toArray()转换为字符串数组- 示例 以下是在Java中将String的ArrayList转换为String数组的程序- 输出结果

  • 问题内容: 有没有一种有效的Numpy机制,可以根据条件为true而不是布尔掩码数组来检索数组中位置的整数索引? 例如: 在这种情况下,我想知道指标的地方。是否可以生成这些而不循环? 问题答案: 另外的选择: 这与。

  • 问题内容: 如何将转换为而不进行转换? 我试过了: 但是doc文件与字节不同(字节是 二进制信息 )。例如: 并且是不同的。 PS:UTF-8不起作用,因为它会将一些字节转换为不同的值。我测试了,它不起作用。 PS2:不,我不要。 问题答案: 您需要指定所需的编码,例如UTF-8 并且将是相同的。 要解码,您需要知道使用了哪种编码,以确保可以正确解码。

  • 问题内容: 有没有办法将a 变成a 或将一个字母变成a (例如如何将a 变成a 和a 变成an )?(如果可以,请链接到相关文档)。 我该如何找到在文档中才隐约知道的类似内容? 问题答案: 您可以通过确定可能涉及的类来查找文档。在这里,候选人是和。 您应该先熟悉以下内容: 原始包装 中的Java Collection框架 它还有助于通过教程更慢地介绍API。 处理字符串中的字符

  • 问题内容: 我是Java编程的新手。我的问题是,我有一个数组,但是当我尝试将其转换为数组时,我不断 我的代码是 任何帮助将是极大的感谢!!! 问题答案: 要摆脱其他空格,您可以像这样更改代码:

  • 问题内容: 概述Java程序如何将诸如“ 1,2,3,4,5”之类的字符串转换为数组({1,2,3,4,5}) 问题答案: 从zvzdhk: 然后,解析您的整数: