java MaxMin
时间: 2024-01-02 22:22:55 浏览: 132
以下是两种Java求最大值和最小值的例子:
1. 使用进阶的MinMax类:
```java
import com.northcastle.I_stream.MinMax;
int[] nums = {1, 2, -5, ..., n};
int min = MinMax.min(nums);
int max = MinMax.max(nums);
System.out.println("最小值是:" + min);
System.out.println("最大值是:" + max);
```
2. 使用流(Stream)的方式:
```java
import java.util.Optional;
import java.util.stream.Stream;
String[] strs = {"1", "5", "2", "3", "100"};
Optional<Integer> max = Stream.of(strs)
.map(Integer::parseInt)
.max((o1, o2) -> {
System.out.println("o1 = " + o1 + " ; o2 = " + o2);
return o1 - o2;
});
System.out.println("最大值是:" + max.get());
```
相关问题
MIN_VALUE java
在Java中,`Integer.MIN_VALUE`代表int类型可以表示的最小整数值,即-2147483648。当这个值被转换为正数时,`Math.abs(-2147483648)`的结果确实是它的绝对值2147483648,因为int类型的溢出行为导致了这种结果[^1]。
然而,当你尝试通过`Math.abs(Integer.MIN_VALUE)`直接打印它的绝对值时,由于内部计算的机制,实际上得到的是-2147483648,这与理论上的最大值+1不一致。这是因为Java中的`Math.abs()`函数在处理`Integer.MIN_VALUE`时遇到了溢出,实际上返回的是这个特殊的负值。
另外,`Integer.MAX_VALUE`和`Integer.MIN_VALUE`是Java中的常量,它们分别代表int类型的最大值(2147483647)和最小值(-2147483648)。除法操作`Integer.MAX_VALUE / Integer.MIN_VALUE`的结果是8,这是由于`Integer.MIN_VALUE`在溢出后的结果是`-2147483648`,相当于`(2147483647 - 1)`,而`2147483647 / -1`等于-2147483647,再加上1,结果就是8[^2]。
Java中集合数据里面如何输出max和min
在Java中,处理集合数据并找到最大值(max)和最小值(min)通常有两种方法:
1. **遍历法**:
- 使用for-each循环遍历集合中的元素,同时维护两个变量`max`和`min`,分别记录当前访问到的最大值和最小值。对于数值类型的集合(如Integer、Double),可以直接比较;对于自定义对象的集合,需要重写equals()和compareTo()方法。
```java
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE; // 或 Double.MAX_VALUE for Doubles
for (int value : collection) {
if (value > max) {
max = value;
}
if (value < min) {
min = value;
}
}
```
2. **流(Stream API)**:
如果你在Java 8及以上版本,并且集合支持stream操作,可以使用`Stream` API简化代码。这一步骤会创建一个新的流,然后使用`max()`和`min()`函数找出最大值和最小值。
```java
OptionalInt maxOptional = collection.stream().mapToInt(Integer::intValue).max();
int max = maxOptional.orElseThrow(() -> new IllegalArgumentException("Empty collection"));
OptionalInt minOptional = collection.stream().mapToInt(Integer::intValue).min();
int min = minOptional.orElseThrow(() -> new IllegalArgumentException("Empty collection"));
```
对于自定义对象,需要实现Comparable接口或者提供Comparator。
阅读全文