例如,我有一个列表(或集合),对每个条目执行相同的方法。这对于lamba来说是非常简单的:
ingredientBaskets.forEach(this::processToMarmalade);
但是,我希望processToMarmalade方法返回无法处理的水果块的数量,并在最后对其求和。通过让方法汇总并返回错误数,我可以很容易地做到这一点。
我想要的基本上是这样的:
int result = ingredientBaskets.forEach(this::processToMarmalade).sum();
一些东西。或者换句话说,做同样的事情:
int result = 0;
for
我正在学习java Stream,并且很难解决下面的问题。我被卡住的原因是我对如何处理Stream<Integer>一无所知。
我无意中通过执行list.stream().count()找到了"count“的解决方案,但除此之外,我不能继续进行下去。请帮助我解决这些问题,并告诉我为什么list.stream().count()会在这种情况下工作。到目前为止,我已经尝试了我学到的所有东西。
public class Question {
public static void main(String[] args) {
List<Integer&g
我想知道是否可以使用新的Streams API在一行中执行以下操作:
List<MyItem> arr = new ArrayList<>();
// MyItem has a single field, which is a value
arr.add(new MyItem(3));
arr.add(new MyItem(5));
// the following operation is the one I want to do without iterating over the array
int sum = 0;
for(MyItem item : arr
让我们看看这个简单的场景:
String ids = "10_20_30_40";
for (String idString : ids.split("_")) {
int id = Integer.parseInt(idString);
}
有一种方法可以避免这种转换,直接获得int值吗?类似于:
for (int id : Integer.parseEach(ids.split("_"))) {
}
或
for (int id : ids.split("_").stream(...)) {
}
我写了这段代码:
import java.util.*;
import java.util.stream.Collectors;
public class Main {
public static void main(String... args) {
List<String> a = Arrays.asList("One", "Two", "three");
List<Integer> lengths = a.stream().mapToInt(String::length).
我有个课
class Person {
String name;
....
Optional<Integer> children;
}
如何使用流来获得所有儿童的总数?
public int totalCount(final Set<Person> people) {
int total = 0;
for (Person person : people) {
if (person.getChildren().isPresent()) {
total += person.getChildren
我想读取一个带有字符串和数字的文件,然后从字符串中筛选数字,并将每一行中的所有数字附加到一个新文件中。我知道这可能有点挑战性,但单凭一条小溪就能做到这一点吗?
例如输入
some numbers 1 2 3
number 4 5 6
and few more number 7 8 9
e.q输出
1+2+3 = 6
4+5+6 = 15
7+8+9 = 24
我的主修课
public class MainFiles {
public static void main(String[] args) {
String filePath
我有以下Java POJO: public class Order {
private List<OrderLine> orderLines;
private String name;
// ... lots of other fields
// Getters & setters & ctors down here
}
public class OrderLine {
private String productId;
private Integer quantity;
// Getters &
我有个课
public class Targets {
public int[] miniTargets;
public Targets(int t) {
miniTargets = new int[t];
for (int i = 0; i < t; i++) {
miniTargets[i] = t;
}
}
}
我想数一下我在Targets收藏中有多少Targets,但是我被flatMap困住了
public class App {
public static void mai
我已经创建了一个二维整数数组,例如
int[][] source = new int[][]{
new int[]{1, 2, 3, 4},
new int[]{-3, -7, -5, -5},
new int[]{11, 3, 7, 9},
new int[]{121, -41, 515, -466}
};
现在,我创建了一个跨行的最大值数组,如下所示:
int[] rowMax = new int[source.length];
for (int i = 0; i < source.length; i++) {
i
我试图计算列表中值的平方和。下面是三个变体,它们都计算出了所需的值。我想知道哪一个最有效率。我期望第三个更有效,因为自动拳击只完成一次。
// sum of squares
int sum = list.stream().map(x -> x * x).reduce((x, y) -> x + y).get();
System.out.println("sum of squares: " + sum);
sum = list.stream().mapToInt(x -> x * x).sum();
System.out
有一个在强制转换上下文中转换函数接口(据我所理解)的示例:和一个代码示例:
// Cast context
stream.map((ToIntFunction) e -> e.getSize())...
它被描述为“功能接口可以在多个上下文中提供目标类型,例如赋值上下文、方法调用或转换上下文”。
我尝试过在stream().mapTo()中使用stream().mapTo(),但只能在stream().mapToInt()中使用它,也不能使用cast。
请有人提供一个示例,如何使用cast上下文示例?我试过这个:
// dlist is a list of Doubles
dlist
我有这样的课程:
public class Test {
private String Fname;
private String Lname;
private String Age;
// getters, setters, constructor, toString, equals, hashCode, and so on
}
和一个用Test元素填充的类似于List<Test> testList的列表。
如何使用Java8获取age的最小值和最大值?
我试图在Java中将2D列表转换为2D ArrayList,然后将2D ArrayList转换为2D数组,并实现for循环,以返回矩阵的两个对角线的绝对差。
如何将2D ArrayList arr转换为2D ArrayList?
到目前为止,我在尝试将输入列表转换为ArrayList时所做的工作如下:
public static int diagonalDifference(List<List<Integer>> arr) {
//first: 2D List --> 2D ArrayList
int[][] a = new int[ar
我需要在字符串"2,4,5“中用逗号对值进行汇总。当然,我可以做这样的事情:
String[] str = "2,4,5".split(",")
int total = 0;
for (int i=0; i<str.length; i++)
{
total += str[i];
}
但我想知道是否有更优雅和更短的解决方案(最好是一行代码)。
我有一个方法,它接受一个整数列表作为参数。我当前有一个long列表,并希望将其转换为整数列表,因此我写道:
List<Integer> student =
studentLong.stream()
.map(Integer::valueOf)
.collect(Collectors.toList());
但是我收到了一个错误:
method "valueOf" can not be resolved.
实际上可以将long列表转换为整数列表吗?
我想使用java 8流方法从列表中获取最大值。
结构如下:
我读取一个csv文件,并将每一行的数据存储在Round类型的单独对象中。
所有这些Round对象都存储在名为arrRound的ArrayList中。
所有Round对象都有一个字段:List<Hit> hits
Hit由两个字段组成:int numberOfGames和int prizeAmount
public class Round{
private List<Hits> hits;
}
public class Hits{
private int numberOf
我希望从java中的映射列表中获得最小值。我正在使用平面地图,流和分钟的组合,这样做,没有得到预期的结果。下面是代码公共类TestMin {
public static class TestHolder{
public static Map<String,Integer> getValues(){
Map<String,Integer> map = new HashMap<>();
map.put("a",1);
map.put("b",3);
map