小编Abh*_*ava的帖子

Java 8 Streams中的字符串操作

我有一串字符串 - Token1:Token2:Token3':'是分隔字符.这里Token3String可以包含分隔符或者可以不存在.我们有这个流转换为地图TOKEN1为键和值是二strings-的阵列array[0] = Token2array[1] = Token3是否Token3存在其他,null.我尝试过类似的东西 -

return Arrays.stream(inputArray)
            .map( elem -> elem.split(":"))
            .filter( elem -> elem.length==2 )
            .collect(Collectors.toMap( e-> e[0], e -> {e[1],e[2]}));
Run Code Online (Sandbox Code Playgroud)

但它没有用.如果Token3不存在或者包含分隔符,它就不会处理这种情况.

如何在Java8 lambda表达式中完成它?

java string lambda java-8 java-stream

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

使用嵌套流连接

我有两个字符串,列表类别和列表选项列表,我的目标是将这两个列表的内容连接起来 -

List<String> categories = Arrays.asList(new String[]{"Cat-1" , "Cat-2", "Cat-3"});
List<String> choices = Arrays.asList(new String[]{"Choice-1" , "Choice-2", "Choice-3"});
List<String> result = new ArrayList<>(categories.size() * choices.size());
for (String cat : categories) {
    for (String choice: choices) {
        result.add(cat + ':' + choice);
    }
}
Run Code Online (Sandbox Code Playgroud)

如何使用java Streams实现它.

java lambda java-8 java-stream

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

将字符串列表转换为已排序的Map字符串长度作为键

我有一个List<String>,我必须将它转换为Map,通过将相同长度的Strings 分组为a List,使用String长度作为键,排序顺序.它可以使用 -

Map<Integer, List<String>> result = new TreeMap<>();
for (String str : list) {
    if (!result.containsKey(str.length())) {
        result.put(str.length(), new ArrayList<>());
    }
    result.get(str.length()).add(str);
}
Run Code Online (Sandbox Code Playgroud)

我们怎样才能使用Java 8流?

lambda java-8 java-stream

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

标签 统计

java-8 ×3

java-stream ×3

lambda ×3

java ×2

string ×1