小编ypr*_*rol的帖子

合并Map <String,List <String> Java 8 Stream

我想将两个Map与JAVA 8 Stream合并:

Map<String, List<String>> mapGlobal = new HashMap<String, List<String>>();
Map<String, List<String>> mapAdded = new HashMap<String, List<String>>();
Run Code Online (Sandbox Code Playgroud)

我尝试使用此实现:

mapGlobal = Stream.of(mapGlobal, mapAdded)
                .flatMap(m -> m.entrySet().stream())
                .collect(Collectors.groupingBy(Map.Entry::getKey,
                        Collectors.mapping(Map.Entry::getValue,        
                                           Collectors.toList())
                ));
Run Code Online (Sandbox Code Playgroud)

但是,此实现仅创建如下结果:

Map<String, List<Object>>

如果未包含一个密钥mapGlobal,则将其添加为具有相应List字符串的新密钥.如果钥匙被复制中mapGlobalmapAdded,值的列表都将被合并为:A = {1, 3, 5, 7}B = {1, 2, 4, 6}然后A ? B = {1, 2, 3, 4, 5, 6, 7}.

java collections lambda java-8 java-stream

12
推荐指数
2
解决办法
1万
查看次数

yaml 和 jinja2 阅读器

我希望能够在 python 中读取 YAML jinja 配置文件,就像使用 PyYAML 库一样,但我收到错误:

{% set name = "abawaca" %}
{% set version = "1.00" %}

package:
   name: {{ name }}
   version: {{ version }}

source:
   fn: {{ name }}-{{ version }}.tar.gz
   url: https://github.com/CK7/abawaca/archive/v{{ version }}.tar.gz
   sha256: 57465bb291c3a9af93605ffb11d704324079036205e5ac279601c9e98c467529

build:
   number: 0

requirements:
   build:
        - gcc   # [not osx]
        - llvm  # [osx]
Run Code Online (Sandbox Code Playgroud)

python jinja2 pyyaml

3
推荐指数
1
解决办法
3540
查看次数

为什么 Scala 中没有可变的排序映射

我一直在寻找在 Scala 中实现可变排序映射的选项。我知道我可以将数据存储在可变映射中,然后在需要时转换为排序映射或从 Java 包装 TreeMap。但是,有谁知道为什么这不在 Scala 中实现?是否反对任何函数式编程风格?

问候

java functional-programming scala

1
推荐指数
1
解决办法
1087
查看次数

使用"下一个"和"上一个"值映射的Scala列表

什么是最好的转变方式:

val arr: List[String]
Run Code Online (Sandbox Code Playgroud)

至:

val mapArr: List[Tuple[Int, String]] 
Run Code Online (Sandbox Code Playgroud)

哪里:

each Tuple is:
  - String value is the an odd index element of the list
  - Int the size of the previous value. 
Run Code Online (Sandbox Code Playgroud)

例:

val stringArr = List("a", "aaa", "bb", "abc")
val resultShouldBe = List((1, "aaa"), (2, "abc"))  
Run Code Online (Sandbox Code Playgroud)

performance functional-programming scala

1
推荐指数
1
解决办法
524
查看次数

在Python中渲染并加载yaml文件

我正在尝试加载 jinja2 格式的 yaml 文件并“评估”/“渲染”模板。在这里,举个例子:

{% set name = "pyexcel-ezodf" %}
{% set version = "0.3.3" %}

package:
  name: {{ name|lower }}
  version: {{ version }}
Run Code Online (Sandbox Code Playgroud)

我希望能够加载 yaml 文件并表示 yaml['package']['version']=0.3.3

我必须尝试 ruamel YAML,但它不评估版本,只给我一个包。

这里是Python代码:

yaml = YAML(typ='jinja2')
yaml.allow_duplicate_keys = True
yaml.explicit_start = True
yaml_content = yaml.load(content)
print (yaml_content['package'])

Run Code Online (Sandbox Code Playgroud)

python jinja2 pyyaml ruamel.yaml

1
推荐指数
1
解决办法
1万
查看次数

将所有列表值合并到地图中

我想将地图转换为:

Map<String, List<String>> 
Run Code Online (Sandbox Code Playgroud)

List<String> 
Run Code Online (Sandbox Code Playgroud)

结果列表是所有列表值的合并。

java java-8 java-stream

-3
推荐指数
1
解决办法
1778
查看次数