草庐IT

Intstream

全部标签

java - 将字节数组转换为 IntStream 的最佳方法是什么?

Java8有java.util.stream.Stream和java.util.stream.IntStream类型。java.util.Arrays有一个方法IntStreamis=Arrays.stream(int[])但没有这样的方法从byte[]、short[]或char[]生成IntStream,将每个元素扩展为int。是否有一种惯用的/首选的方法来从byte[]创建IntStream,以便我可以以函数方式对字节数组进行操作?我当然可以简单地将byte[]手动转换为int[]并使用Arrays.stream(int[]),或使用IntStream.Builder:public

java - 使用 Java8 生成器的无限自然数序列

我用Java8iterator为自然数的无限序列(Stream)定义了natural。IntStreamnatural=IntStream.iterate(0,i->i+1);natural.limit(10).forEach(System.out::println);现在,我想用Java8generator来定义它。静态流生成(供应商)最简单的方法是什么?谢谢。 最佳答案 使用生成器,您需要跟踪当前索引。一种方法是:IntStreamnatural=IntStream.generate(newAtomicInteger()::ge

java - 使用 Java8 生成器的无限自然数序列

我用Java8iterator为自然数的无限序列(Stream)定义了natural。IntStreamnatural=IntStream.iterate(0,i->i+1);natural.limit(10).forEach(System.out::println);现在,我想用Java8generator来定义它。静态流生成(供应商)最简单的方法是什么?谢谢。 最佳答案 使用生成器,您需要跟踪当前索引。一种方法是:IntStreamnatural=IntStream.generate(newAtomicInteger()::ge

java - 流状态计算 : cumulative sums

假设我有一个JavaIntStream,是否可以将其转换为具有累积和的IntStream?例如,以[4,2,6,...]开头的流应转换为[4,6,12,...]。更一般地说,应该如何实现有状态的流操作?感觉这应该是可能的:myIntStream.map(newFunction{intsum=0;Integerapply(Integervalue){returnsum+=value;});有一个明显的限制,即这只适用于顺序流。但是,Stream.map明确需要无状态映射函数。我是否错过了Stream.statefulMap或Stream.cumulative操作,还是错过了Java流的要

java - 流状态计算 : cumulative sums

假设我有一个JavaIntStream,是否可以将其转换为具有累积和的IntStream?例如,以[4,2,6,...]开头的流应转换为[4,6,12,...]。更一般地说,应该如何实现有状态的流操作?感觉这应该是可能的:myIntStream.map(newFunction{intsum=0;Integerapply(Integervalue){returnsum+=value;});有一个明显的限制,即这只适用于顺序流。但是,Stream.map明确需要无状态映射函数。我是否错过了Stream.statefulMap或Stream.cumulative操作,还是错过了Java流的要

java - For 循环 - 类似于 Python 范围函数

我想知道在Java中是否有类似pythonrange函数的函数。range(4)它会返回[0,1,2,3]这是一种用于增强循环的简单方法。在Java中这样做会很棒,因为它会使for循环更容易。这可能吗? 最佳答案 Java8(2014)添加了IntStream(类似于apachecommonsIntRange),所以你现在不需要外部lib。importjava.util.stream.IntStream;IntStream.range(0,3).forEachOrdered(n->{System.out.println(n);});

java - For 循环 - 类似于 Python 范围函数

我想知道在Java中是否有类似pythonrange函数的函数。range(4)它会返回[0,1,2,3]这是一种用于增强循环的简单方法。在Java中这样做会很棒,因为它会使for循环更容易。这可能吗? 最佳答案 Java8(2014)添加了IntStream(类似于apachecommonsIntRange),所以你现在不需要外部lib。importjava.util.stream.IntStream;IntStream.range(0,3).forEachOrdered(n->{System.out.println(n);});

java - 将 Stream 转换为 IntStream

我觉得我在这里遗漏了一些东西。我发现自己在做以下事情privatestaticintgetHighestValue(MapcountMap){returncountMap.values().stream().mapToInt(Integer::intValue).max().getAsInt();}我的问题是通过mapToInt(Integer::intValue)从Stream到IntStream的愚蠢转换有没有更好的转换方法?所有这一切都是为了避免使用Stream中的max(),这需要传递一个Comparator但问题具体在于的转换流到IntStream

java - 将 Stream 转换为 IntStream

我觉得我在这里遗漏了一些东西。我发现自己在做以下事情privatestaticintgetHighestValue(MapcountMap){returncountMap.values().stream().mapToInt(Integer::intValue).max().getAsInt();}我的问题是通过mapToInt(Integer::intValue)从Stream到IntStream的愚蠢转换有没有更好的转换方法?所有这一切都是为了避免使用Stream中的max(),这需要传递一个Comparator但问题具体在于的转换流到IntStream

java - 将 `IntStream` 打印为 `String` 的最简单方法

使用Java-8,我可以轻松处理String(或任何CharSequence)作为IntStream使用chars或codePoints方法。IntStreamchars="Helloworld.".codePoints();然后我可以操作流的内容IntStreamstars=chars.map(c->c==''?'':'*');我一直在寻找一种整洁的方法来打印结果,但我什至找不到简单的方法。我如何放置int的这个流s回到一个可以像我一样打印的表格String.来自以上stars我希望打印*********** 最佳答案 Strin