java-8相关内容

Java 8中流的笛卡尔积作为流(仅使用流)

我想创建一个方法来创建一个元素流,这些元素是多个给定流的笛卡尔积(最后由二元运算符聚合到同一类型)。请注意,参数和结果都是流,不是集合。 例如,对于 {A,B}的两个流和 {X,Y} 我希望它生成值 {AX,AY,BX,BY} 的流(简单串联用于聚合字符串) )。到目前为止,我已经提出了这个代码: private static流< T>笛卡儿(BinaryOper ..
发布时间:2018-11-28 20:10:58 Java开发

Reader#lines()由于其spliterator中的不可配置的批量大小策略而严重并行化

当流源是 Reader 时,我无法实现流处理的良好并行化。在四核CPU上运行下面的代码我首先观察到3个核心,然后突然下降到两个核心,然后是一个核心。整体CPU利用率徘徊在50%左右。 请注意示例的以下特征: 只有6,000行; 每行需要大约20毫秒来处理; 整个过程大约需要一分钟。 这意味着所有压力都在CPU上,I / O很小。该示例是一个用于自动并行化的坐便器。 i ..
发布时间:2018-11-28 20:09:43 Java开发

在Java 8中反转比较器

我有一个ArrayList,并希望按降序排序。我用它 java.util.stream.Stream.sorted(Comparator)方法。以下是根据Java API的说明: 返回由此流的元素组成的流,根据提供的比较器。 此方法返回一个升序排序。我应该更改哪个参数,只是为了降序? 解决方案 您可以使用 Comparator.reverseOrder() 有一个比较器强制反转 ..
发布时间:2018-11-28 20:08:03 Java开发

为什么Stream没有toList()方法?

使用Java 8流时,采用列表,从中创建流,执行业务并将其转换回来是很常见的。类似于: Stream.of(-2,1,2,-5) .filter(n - > n> 0) .map(n - > n * n) .collect(Collectors.toList()); 为什么' .collect没有捷径/方便的方法(Collectors.toList())'par ..
发布时间:2018-11-28 01:06:07 Java开发

Java8 Collections.sort(有时)不会对JPA返回的列表进行排序

Java8在我的JPA EclipseLink 2.5.2环境中继续做着奇怪的事情。我不得不删除 https://stackoverflow.com/questions/26806183/java-8-sorting-行为 昨天因为在这种情况下的排序受到奇怪的JPA行为的影响 - 我通过强制执行最后排序之前的第一个排序步骤找到了解决方法。 仍然在Java 8中使用JPA Eclipseli ..
发布时间:2018-11-28 01:04:02 Java开发

流状态计算:累积总和

假设我有一个Java IntStream,是否可以将其转换为具有累积总和的IntStream?例如,以[4,2,6,...]开头的流应转换为[4,6,12,...]。 更多一般来说,应该如何实现有状态流操作?感觉这应该是可能的: myIntStream.map(new Function { int sum = 0; 整数适用(整数值){ 返还金 ..
发布时间:2018-11-28 01:03:00 Java开发

思考 - Java 8 - 无效的常量类型

我在 Reflections 库中遇到问题。 我试图动态加载实现特定接口的所有类。 只要我不在这些类中使用lambda表达式(java 8),一切正常(加载所有类)。 我试过升级lib版本,但效果是一样的(java.io.IOException:无效的常量类型:18)。 pom.xml中的依赖和构建 org.reflection ..
发布时间:2018-11-28 01:02:47 Java开发

什么是Java 8 Lambda表达式编译?

考虑以下Java 8代码段。 public static void main(String [] args){ List integers = Arrays.asList(1,2,3,4,5); 消费者消费者= x - >是System.out.print(X); integers.forEach(消费者); } 什么是消费 ..
发布时间:2018-11-28 01:02:25 Java开发

可以显式删除lambda的序列化支持

当已知时,很容易在目标时为lambda表达式添加序列化支持接口尚未继承 Serializable ,就像(TargetInterface& Serializable)() - > {/ * code * /} 。 我要求的是一种相反的方法,当目标接口 继承时,显式删除序列化支持c $ c> Serializable 。 由于您无法从类型中删除接口,因此基于语言的解决方案可能看起来像(@ ..
发布时间:2018-11-28 00:40:49 Java开发

带有批处理的Java 8 Stream

我有一个包含项目列表的大文件。 我想创建一批项目,使用此批次发出HTTP请求(全部需要这些项作为HTTP请求中的参数)。我可以使用 for 循环轻松完成,但作为Java 8的爱好者,我想尝试用Java 8的Stream框架编写它(并获得延迟处理的好处) 。 示例: List batch = new ArrayList(BATCH_SIZE); for( ..
发布时间:2018-11-28 00:30:56 Java开发

Java 8 Streams FlatMap方法示例

我一直在检查即将发布的 Java更新,即: Java 8或JDK 8 。是的,我很不耐烦,有很多新东西,但是,有一些我不明白的东西,一些简单的代码: final Stream stream = Stream.of(1,2,3,4,5,6,7,8,9,10); stream.flatMap(); javadocs publi ..
发布时间:2018-11-28 00:20:46 Java开发

使用流生成地图时忽略重复项

Map phoneBook = people.stream() .collect(toMap(Person :: getName,Person :: getAddress)); 重复发生时,我得到重复的密钥异常。 当重复出现时,是否可以忽略将值添加到地图中? 当存在重复时它应该继续忽略那个重复的密钥。 解决方案 这 ..
发布时间:2018-11-28 00:18:57 Java开发