27得票4回答
使用流来操作字符串

假设我想从我的String中删除所有非字母字符。 String s = "abc-de3-2fg"; 我可以使用 IntStream 来实现这个目的: s.stream().filter(ch -> Character.isLetter(ch)). // But then wh...

7得票2回答
Java API Streams:将流收集到值为TreeSet的Map中

有一个 Student 类,它有 name,surname,age 字段和相应的 getter 方法。 给定一个 Student 对象的流。 如何调用 collect 方法才能返回一个 Map,其中键是 Student 的 age,值是包含该年龄学生的 surname 的 TreeSet。...

9得票2回答
Scala dropWhile的等价实现

我在寻找一种方法,根据谓词跳过流的一些元素,但我遇到了困难。 类似于这样的代码: dropWhile( n -> n < 3, Stream.of( 0, 1, 2, 3, 0, 1, 2, 3, 4 ) ) .forEach( System.out::println ); ...

7得票1回答
Haskell中的scanl在Java的streams中有什么相当之处?

作为这个问题是有关Python的,那么Java流中Haskell的scanl等价于什么? 到目前为止,我想到的最好方法是使用 reduce(identity, accumulator, combiner) 通过一个保持最新结果并在列表中累加结果的累加器,尽管组合器可能不会被使用。我也不...

10得票4回答
Java 8按一对多分组

我想学习如何使用Java 8中的流式编程语法,但遇到了一些困难。 当每个值都有一个键时,使用groupingBy很容易。但是如果我对于每个值有一个键列表,并且仍然想使用groupingBy进行分类,那么我必须将其分为几个语句吗?或者可能有一些流式魔法可以使它更简单。 这是基本代码:List...

306得票9回答
为什么Stream<T>没有实现Iterable<T>接口?

在Java 8中,我们有一个名为Stream&lt;T&gt;的类,这个类奇妙地拥有一个方法。 Iterator&lt;T&gt; iterator() 您会期望它实现接口Iterable&lt;T&gt;,该接口需要正好这个方法,但事实并非如此。 当我想使用foreach循环迭代St...

13得票4回答
如何根据集合值的大小对 Map 进行排序?

我有一个像这样的HashMap:Map&lt;String, List&lt;String&gt;&gt; map = new HashMap&lt;&gt;(); map.put("USA", Arrays.asList("CA","IA","IL")); map.put("India",...

23得票1回答
使用Comparator接口和Java 8流进行排序

Parent是一个被Child继承的类,Child又被GrandChild继承。每个类都包含子类的列表(即Parent包含Child的列表,Child包含GrandChild的列表)。每个类都包含50个属性(attrib1-atrib50)。 getChildList()返回类型为Child对...

8得票5回答
Java计算整数数组中每个元素出现的次数

我写了以下代码段来计算每个元素出现的次数。有没有更短的方法可以实现这个功能? int[] arr = {1, 6, 2, 8, 5, 4, 7, 7, 5, 7}; Arrays.stream(arr) .collect(ArrayList::new, ArrayList::...

14得票9回答
Java 8,Lambda:在分组列表内进行排序并将所有组合并为一个列表

基于以下答案:https://dev59.com/mGEi5IYBdhLWcg3wFooL#30202075 如何按stud_id对每个组进行排序,然后通过按stud_location分组并按stud_id排序返回包含所有学生的列表? 将此作为现有Lambda表达式的扩展将是很好的。 M...