java foreach 求和
时间: 2023-11-24 18:53:03 浏览: 82
以下是使用Java foreach循环求和的示例代码:
```java
int sum = 0;
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
sum += num;
}
System.out.println("Sum is: " + sum); // 输出:Sum is: 15
```
在上面的代码中,我们定义了一个整型数组`numbers`,然后使用foreach循环遍历数组中的每个元素,并将它们相加得到总和。最后,我们使用`System.out.println()`函数输出结果。
相关问题
java stream分组求和
可以使用Java的Stream API来实现分组求和的操作。假设有一个包含对象的列表,对象中有两个属性:类型和数值。我们想要将列表中的对象按照类型进行分组,并计算每个类型对应的数值总和。下面是一个示例代码:
```java
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class GroupingAndSummingExample {
public static void main(String[] args) {
// 创建对象列表
List<DataObject> dataObjects = Arrays.asList(
new DataObject("A", 10),
new DataObject("B", 20),
new DataObject("A", 30),
new DataObject("B", 40),
new DataObject("C", 50)
);
// 使用Stream进行分组求和
Map<String, Integer> sumByType = dataObjects.stream()
.collect(Collectors.groupingBy(DataObject::getType, Collectors.summingInt(DataObject::getValue)));
// 打印结果
sumByType.forEach((type, sum) -> System.out.println(type + ": " + sum));
}
}
class DataObject {
private String type;
private int value;
public DataObject(String type, int value) {
this.type = type;
this.value = value;
}
public String getType() {
return type;
}
public int getValue() {
return value;
}
}
```
运行以上代码,将会输出以下结果:
```
A: 40
B: 60
C: 50
```
代码中,我们使用`Collectors.groupingBy`方法来对数据对象进行分组,按照类型(`DataObject::getType`)进行分组。然后,我们使用`Collectors.summingInt`方法对每个分组进行求和,按照数值属性(`DataObject::getValue`)累加求和。最后,我们将结果打印出来。
java stream分组求和案例
下面是一个使用Java Stream进行分组求和的例子:
```java
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class GroupingAndSummingExample {
public static void main(String[] args) {
// 创建一个包含多个学生的列表
List<Student> students = Arrays.asList(
new Student("Alice", "Math", 85),
new Student("Bob", "English", 75),
new Student("Alice", "English", 90),
new Student("Bob", "Math", 80),
new Student("Charlie", "Math", 95)
);
// 使用Stream进行分组求和
Map<String, Integer> sumByStudent = students.stream()
.collect(Collectors.groupingBy(Student::getName, Collectors.summingInt(Student::getScore)));
// 打印每个学生的总分
sumByStudent.forEach((name, totalScore) -> System.out.println(name + ": " + totalScore));
}
static class Student {
private String name;
private String subject;
private int score;
public Student(String name, String subject, int score) {
this.name = name;
this.subject = subject;
this.score = score;
}
public String getName() {
return name;
}
public String getSubject() {
return subject;
}
public int getScore() {
return score;
}
}
}
```
上述例子中,我们创建了一个包含多个学生的列表。然后使用Stream的`groupingBy`方法对学生进行分组,按照学生名字进行分组,并通过`summingInt`方法对每个分组中的学生成绩进行求和。最后,我们遍历结果Map,打印每个学生的总分。
运行上述代码,将会输出:
```
Alice: 175
Bob: 155
Charlie: 95
```
可以看到,学生Alice的总分是175,学生Bob的总分是155,学生Charlie的总分是95。
阅读全文