标签: java-stream

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

我想将地图转换为:

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
查看次数

Java-8将方法的多个参数传递给流

考虑我有这个方法,它采用多个参数,我想做一些简单的计算,如count,sum,average,min,max,看看这个原生的例子:

public static void calculate(int... param) {
    int sum = 0;
    for (int i : param) {
        sum += i;
    }
    System.out.println(sum);
}
Run Code Online (Sandbox Code Playgroud)

如何(int... param)在Java-8 Stream中传递此参数并进行此计算?

java java-8 java-stream

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

Java 8 流与列表

我有一组私有方法,用于类的主要公共方法(接收列表),这些方法将主要使用 java 8 经典流操作,如 、等filter我想知道是否在公共 api 中创建一次流传递给其他方法而不是传递列表具有任何性能优势或考虑因素,称为一次性。 mapcount.stream()

java java-8 java-stream

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

Java 8 Stream并在执行缩减时维护索引

这些天我一直在试图弄清楚如何使用Java 8流API执行减少并同时维护索引.这是一个例子:

我有以下字符串:

String charSequence = "kjsfjsfajdsfjsaaaaaasssddfddddbbbdddaaa";
Run Code Online (Sandbox Code Playgroud)

我想通过Stream操作返回三元组 (I, N, C)

哪里:

  • C 是一个角色
  • N 是一些事件 - 应该是最大的
  • I 是第一次出现的字符串的索引(如果有多个字符串,则为第一个)

例子:

  • "ddaaaacccjcccccjjj" 回报 (10, 5, c)
  • "ddaaacccaaa"的第一次出现"aaa"2这样的结果将是: (2, 3, a)

一般来说,如果我可以返回所有具有长度为3的子串的字符,那将是很好的,这样结果就是两个三元组(I, N, C) C.但这是可选的.如果我得到第一个三重权利,我可以自己前进.

更新:

我不是在寻找替代解决方案.我可以用另一个API很好地实现它.我试图理解为什么维护索引是困难的,或者为什么不能这样做,如果是这样的话.反对的好论据很好.

java lambda mapreduce java-8 java-stream

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

如何使用Java 8流使用集合流式传输地图?

我想使用Java 8流来收集带有集合的地图.

例如,拥有以下数据:

Map<String, Collection<Integer>> data;
Run Code Online (Sandbox Code Playgroud)

我想用相应的键字符串来处理处理每个整数值的元素.例如:

data.keyValueStream((k,v)-> ...)
Run Code Online (Sandbox Code Playgroud)

知道怎么做到这一点?谢谢.

*关于"你为什么需要它?"的问题,这可能是一堆原因,我不确定它是否重要.无论如何,我会和你一起"流动"...我的具体情况是在他们的特定键下批量插入数据库中的所有值.让它保持一个普通的Java 8流问题......

java dictionary multimap java-8 java-stream

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

Java 8引入了IntStream,LongStream和DoubleStream,为什么他们没有添加CharStream和StringStream?

为什么Java 8没有StringStream和CharStream.

StringStream.of("String1","String2");

StringStream.concat(stream1,stream2);

StringStream.builder().add("String1").add("string2").accept("string3");
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

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

如何将lambda表达式转换为普通代码?

我正在用Java 1.8编写,现在我需要降级到1.6。我在以正常方式编写此代码时遇到问题。有什么建议么 ?

return Stream.of(field.getText().split(","))
             .map(String::trim)
Run Code Online (Sandbox Code Playgroud)
         **.filter(s -> !s.isEmpty())**
Run Code Online (Sandbox Code Playgroud)
             .map(Integer::valueOf)
             .collect(Collectors.toSet());
Run Code Online (Sandbox Code Playgroud)

非常感谢您的帮助。

那就是我尝试过的:

if(!splitted[i].isEmpty()) {
   set.add(Integer.valueOf(splitted[i]));
}  
Run Code Online (Sandbox Code Playgroud)

java for-loop java-stream

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

使用数组 Java - 任何更好的选择

对于以下问题,java 8 中可用的任何更好的选项。

有两个数组,一个整数数组和一个增量数组。将每个增量值应用到整数数组中的元素上,得到每个增量相加后增量元素的绝对值之和。

import java.util.Arrays;

public class ArrayChallenge {

    public static void main(String[] args) {
        long[] nA = {-3, -2, 4, 5};
        long[] iA = {2, 4, -6};
        long[] sumArr = findAbsValueSum(nA, iA);
        System.out.println(Arrays.toString(sumArr));

    }

    public static long[] findAbsValueSum(long[] numArr, long[] incrArr) {
        long[] sumArr = new long[incrArr.length];

        for (int i = 0; i < incrArr.length; i++) {
            long sum = 0;
            for (int j = 0; j < numArr.length; j++) {
                sum = sum + Math.abs(numArr[j] + incrArr[i]); …
Run Code Online (Sandbox Code Playgroud)

java java-stream

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

使用流获取层次结构中所有项目的名称

class ParentItem {
    String itemName;  //I want to get this property for all the objects in hierarchy
    Integer itemCode;
    List<ParentItem> childItem;
}
Run Code Online (Sandbox Code Playgroud)

我想使用流获取所有项目的名称(ParentItem 名称、ChildItem 名称、GrandChildItemName),如何实现?假设 ChildItem 也有一个 Child,这意味着 ParentItem 有一个 GrandChild!所以嵌套有 3 层。如何实现这一目标?

java collections loops java-stream

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

Java 8将List <Map <String,String>转换为Map <String,Map <String,String >>

我想转换地图列表即

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

到地图的地图即

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

在地图列表中我将Distanace存储在两个城市之间.我的地图列表是:

[{Destination = IOWA,distance = 2000,Source = NY},{Destination = OHIO,distance = 3000,Source = NY},{Destination = TX,distance = 2500,Source = NY},{Destination = NC,distance = 1500,Source = TX},{Destination = NY,distance = 2500,Source = TX},{Destination = DEL,distance = 3000,Source = TX}]

现在我必须把它转换成

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

这样我们就可以远离所有城市.Outer Map Key将成为Source City.值映射将具有目标城市作为键和源到目标之间的距离作为值.输出格式为:

{TX = {NC = 1500,DEL = 3000,NY = 2500},NY = {IOWA = 2000,TX = 2500,OHIO = 3000}}

我想通过使用Java 8 Stream API进行转换.不知道如何使用groupingby.

java java-stream

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