java-stream相关内容
我可以想出两种方式: public static IntStream foo(List list) { return list.stream()。mapToInt(Integer :: valueOf); } public static IntStream bar(List list) { return list.stream()
..
我有一个列表 集合。 我需要将它转换为 Map 地图的键必须是集合中项目的索引。 我无法弄清楚如何使用流。 类似的东西: items.stream()。collect(Collectors.toMap(...)); 有任何帮助吗? 被标识为可能的重复我需要添加,我的具体问题是 - 如何获取列表中的项目的位置,并
..
我从列表创建一个地图如下: Map map = itemExt.getVariants()。stream()。map((extVar) - > { // convert Variant ItemVariant itemVar = conversionService.convert(extVar,ItemVariant.class); re
..
我有地图地图 countByType ,我想有一个列表,它们通过它们相应的值排序(最小到最大)键。我的尝试是: countByType.entrySet()。stream()。sorted()。collect(Collectors.toList ; 但是这只是给我一个条目列表,该命令? 解决方案 你说你想按值排序,但是你的代码中没有。将lambda(或
..
在Java 8中,有 Stream.collect 允许集合上的聚合。在Kotlin中,这不以同样的方式存在,除了可能作为stdlib中的扩展函数的集合。但是不清楚不同用例的等效性。 例如,在 Collectors 的JavaDoc顶部是为Java 8编写的示例,当将它们移植到Kolin时,不能使用Java 8类在不同的JDK版本上,所以可能应该写成不同的。 在资源在线显示Kotlin
..
我在玩Java 8 lambdas来轻松过滤集合。但我没有找到一个简明的方法来检索结果作为一个新的列表在同一语句。这是我迄今为止最简明的方法: List sourceLongList = Arrays.asList(1L,10L,50L,80L,100L,120L,133L,333L); List targetLongList = new ArrayList
..
我知道使用 .stream(),我可以使用 .filter()平行流。但是如果我需要执行小的操作(例如,打印列表的元素),它们之间的区别是什么? .stream()。forEach(System.out :: println); collection.forEach(System.out :: println); 解决方案 对于如图所示的简单情况,大部分是一样的。但是,
..
我已经测试了一个位于Java 8 lambdas和stream上的max()函数,似乎在执行max()的情况下,即使多个对象比较为0,它也会返回一个任意的元素。 这样的最大预期行为是否有明显的技巧或函数,以便返回所有最大值?我在API中没有看到任何内容,但我确定它必须比手动比较更好。 例如: // myComparator是一个IntegerComparator Strea
..
我是Java 8的新手。我还是不知道API的深度,但我做了一个小的非正式的基准来比较新的Streams API的性能和好的旧集合。 测试包括过滤 Integer 的列表,对于每个偶数,计算平方根和存储它在结果列表 双。 是代码: public static void main(String [] args){ //计算均方根数字从1到N int min = 1; in
..
假设我有一个方法返回一个只读视图到成员列表: class Team { private List players = new ArrayList(); // ... public List getPlayers() { return Collections.unmodifiableList(players); } }
..
我可以创建一个递归闭包: static IntUnaryOperator fibo; fibo = (i) - > i 但是,这只是一个例子。相反,如果我创建了一个延迟/无限列表/流,递归可以以相当不错的方式使用:没有成员必须被计算多次。 我想到了以下结构: IntStream fi; fi = IntStream.iterate(0,i
..
我是新来的Java 8,目前未能充分掌握数据流,将有可能填补使用Stream功能操作数组?这是我将如何与循环标准做一个例子code: 公共静态无效testForLoop(){ 的String [] []数组=新的String [3] [3]; 为(中间体X = 0; X&下; array.length; X ++){ 对于(INT Y = 0; Y<阵[X]
..
的Java 8具有java.util.stream.Stream和java.util.stream.IntStream类型。 java.util.Arrays中有一个方法 IntStream是= Arrays.stream(INT []) 但没有这样的方法,使从字节[]的IntStream,短期[]或烧焦[],每个元素拉大到一个int。是否有一个惯用/ preferred的方式来创建从字节
..
目前,我正在学习如何使用Java和我的朋友告诉我,code的此块可以简化使用Java 8时,他指出,在 parseIntArray 可以简化。你将如何在Java中8要这样做呢? 公共类解决方案{ 公共静态无效的主要(字串[] args){ 扫描仪输入=新的扫描仪(System.in); 的String []标记= input.nextLine()分裂(“”
..
我刚刚发现了新的Java 8个流能力。在Python来了,我在想,如果现在有一个整洁的方式做像总结阵列作业,在“一行Python化”的方式相乘两个数组? 感谢 解决方案 有加入 java.util.Arrays中的新的方法,以一个数组转换成一个Java 8个流然后可以用于求和等 INT总和= Arrays.stream(myIntArray) 。和(
..
目前,每当我需要从阵列中创建的流,我 String []数组= {“X1”,“X2”}; Arrays.asList(阵列).stream(); 有一些直接的方式来从一个数组创建流? 解决方案 您可以使用Arrays.stream例如 Arrays.stream(数组); 您也可以使用 Stream.of 由@fge,它看起来像提及公共静态< T>流< T>
..
什么是转换一个Java 8的最简单/最短路径流到一个数组? 解决方案 您可以使用的toArray 的重载版本,如下: 流<串GT;流= ...; 的String []字符串数组= stream.toArray(大小 - >新的String [尺寸]); 在 IntFunction 1所述的目的; A []>发电机是一个整数,该数组的大小,转换成一个新的数组。 举例c
..
假设我有两个相同类型的流。是否有可能追加一个流的另一种没有将它们转换为事先列出? 例如: 流< MyClass的>毫秒= ...; 流< MyClass的>纳秒= ...; 返回ms.append(纳秒); 解决方案 是 使用 Stream.concat(STREAM1,STREAM2),这将创建一个包含第一个流1 然后流2 的如果的你想保持顺序。另外请注意,所
..
IntStream可能是一个最简单的方法,但我只能拿起最小的m个,如下: 公共类测试{ 私有静态最终诠释[]改编= {5,3,4,2,9,1,7,8,6}; 公共静态无效的主要(字串[] args)抛出异常{ 的System.out.println(Arrays.asList(IntStream.of(ARR).sorted()限制(5).boxed()的toA
..
假设我们有对象,由唯一的字符串 S来标识的集合,连同类树的定义了他们的层次结构。这个类是使用地图从节点(再由他们的ID psented $ P $),以集合是他们的执行各个孩子的标识。 类树{ 私人地图<字符串,收集和LT;字符串>>边缘; // ... 公共流<字符串>后代(字符串节点){ // 被定义为。 } } 我想使流节
..