java-8相关内容

Java 8 中的 reduce 累加器是否允许修改其参数?

在 Java 8 中,Stream 有一个方法 reduce: T reduce(T identity, BinaryOperator accumulator); 累加器运算符是否允许修改它的任何一个参数?我认为不是,因为 JavaDoc 说累加器应该是 NonInterfering,尽管所有示例都谈到修改集合,而不是修改集合的元素. 所以,举个具体的例子,如果我们有 integer ..
发布时间:2022-01-22 10:32:12 Java开发

Java8 Streams - 使用 Stream Distinct 删除重复项

我有一个流,例如: Arrays.stream(new String[]{"matt", "jason", "michael"}); 我想删除以相同字母开头的名称,以便只剩下一个以该字母开头的名称(不管是哪个). 我试图了解 distinct() 方法有效.我在文档中读到它基于对象的“equals"方法.但是,当我尝试包装 String 时,我注意到 equals 方法从未被调用,并且没 ..
发布时间:2022-01-22 10:31:59 Java开发

是什么实现细节让这段代码如此容易失败?

这个问题不是关于 HashMap 不是线程安全的众所周知和记录的事实,而是关于它在 HotSpot 和 JDK 代码上的特定故障模式.我很惊讶这段代码很容易因 NPE 而失败: public static void main(String[] args) {映射m = new HashMap(0, 0.75f);IntStream.range(0, 5).parallel(). ..
发布时间:2022-01-22 10:31:50 Java开发

从java中的二维数组流式传输

我正在尝试从 n 维 int 数组中获取 IntStream.有没有很好的 API 方法来做到这一点?我知道两个流的连接方法. 解决方案 假设您想以行优先方式顺序处理数组数组,这应该可以: int[][] arr = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };IntStream 流 = Arrays.stream(arr).flatMapToInt(x -> ..
发布时间:2022-01-22 10:31:22 Java开发

Java 8 流收集集

为了更好地理解新的流 API,我正在尝试转换一些旧代码,但我坚持使用这个. 公共集合asDestSet() {HashMap>map = new HashMap>();//...设置结果 = 新的 HashSet();for (设置 v : map.values()) {结果.addAll(v);}返回结果;} 我似乎无法为其创建有效的收集器: ..
发布时间:2022-01-22 10:30:41 Java开发

展平地图<整数,列表<字符串>>映射<字符串,整数>带流和 lambda

我想展平一个 Map,它将 Integer 键关联到 String 列表,而不会丢失键映射.我很好奇,好像使用 stream 和 lambda 这样做是可能和有用的. 我们从这样的开始: 映射>mapFrom = new HashMap(); 让我们假设 mapFrom 填充在某个地方,看起来像: 1: a,b,c2:d,e,f等等. 我们还假设列表中的值是唯一 ..
发布时间:2022-01-22 10:30:35 Java开发

当 .stream().parallel() 做同样的事情时,为什么 Collection.parallelStream() 存在?

在 Java 8 中,Collection 接口扩展了两个返回 Stream 的方法:返回顺序流的 stream() 和返回顺序流的 parallelStream(),它返回一个可能并行的流.Stream 本身也有一个 parallel() 方法,该方法返回等效的并行流(将当前流变为并行或创建新流). 重复有明显的缺点: 令人困惑.一个问题询问 是否有必要同时调用 paralle ..
发布时间:2022-01-22 10:30:25 Java开发

Java 8 中的空安全集合作为流

我正在寻找可以制作集合流的方法,但它是 null 安全的.如果collection 为null,则返回空流.像这样: Utils.nullSafeStream(collection).filter(...); 我已经创建了自己的方法: 公共静态流nullSafeStream(集合集合){if (collection == null) {返回 Stream.empty();}返回集 ..
发布时间:2022-01-22 10:29:57 Java开发

.forEach 和 .sort 不起作用,并且无法在块中设置断点

我正在使用 Java 8(内部版本 1.8.0_25)、Netbeans 8.0.2,并且正在将一些 Java 8 功能整合到现有应用程序中.排序和 .forEach 不起作用,所以我创建了一些测试代码以确保我理解 lambda 等并诊断问题.下面是新代码以及与我系统中的数据交互的代码的组合: public void test(Registration reg) {/* 新代码 */列表 ..
发布时间:2022-01-22 10:29:09 Java开发

Java 中 stream.max(Comparator) 和 stream.collect(Collectors.maxBy(Comparator) 的区别

在 Java Streams 中 - stream.max(Comparator) 和 stream.collect(Collectors.maxBy(Comparator)) 在性能方面有什么区别.两者都将根据传递的比较器获取最大值.如果是这种情况,为什么我们需要使用 collect 方法进行收集的额外步骤?我们什么时候应该选择前者还是后者?适合同时使用两者的用例场景有哪些? 解决方案 ..
发布时间:2022-01-22 10:28:13 其他开发