List<Integer> 取最大值
时间: 2023-07-08 12:47:46 浏览: 51
你可以使用 Java 8 中的 Stream API 来获取 List<Integer> 中的最大值。具体实现可以参考以下代码:
```
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Integer max = list.stream().max(Integer::compareTo).get();
System.out.println("List中最大值为:" + max);
```
其中,`max()` 方法接受一个 `Comparator` 对象作为参数,用于比较两个元素的大小关系。在这里,我们使用 `Integer::compareTo` 方法作为比较器,它会将两个整数进行比较,返回较大值。
如果你的 List 可能为空,可以通过使用 `orElse()` 方法来避免 `NoSuchElementException` 异常的出现:
```
List<Integer> list = new ArrayList<>();
Integer max = list.stream().max(Integer::compareTo).orElse(0);
System.out.println("List中最大值为:" + max);
```
在这里,如果 List 为空,`orElse()` 方法会返回一个默认值 0。
相关问题
java list<map> 查询 最大值
假设每个Map中都有一个键值对,键为“value”,值为整型数值,可以使用以下代码查询List中所有Map中“value”键的最大值:
```java
List<Map<String, Integer>> list = new ArrayList<>(); // 假设已经初始化并填充了数据
int max = Integer.MIN_VALUE;
for (Map<String, Integer> map : list) {
int value = map.get("value");
if (value > max) {
max = value;
}
}
System.out.println("最大值为:" + max);
```
如果Map中的键值对不是固定的,可以根据具体情况修改代码中的键名。
public static int sum(List<Integer> list) { int sum = 0; for (int x : list) { sum += x; } return sum; }测试最大值测试代码
你可以使用 JUnit 来编写测试代码。以下是一个例子:
```java
import org.junit.Test;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import static org.junit.Assert.assertEquals;
public class SumTest {
@Test
public void testSum() {
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
assertEquals(15, Sum.sum(list1));
List<Integer> list2 = Arrays.asList(-1, -2, -3, -4, -5);
assertEquals(-15, Sum.sum(list2));
List<Integer> list3 = Collections.emptyList();
assertEquals(0, Sum.sum(list3));
}
}
```
这个测试代码测试了 `sum` 方法的三个场景:正整数、负整数和空列表。你可以根据你的需求添加更多的测试场景。