3 回答
TA贡献1752条经验 获得超4个赞
获取最小值和最大值确实可以在不比较 s 的情况下工作。您应该使用自然排序:intValue
BigInteger max = list.stream().max(BigInteger::compareTo).orElseThrow(NoSuchElementExcep::new); BigInteger min = list.stream().min(BigInteger::compareTo).orElseThrow(NoSuchElementExcep::new);
同样没有的是,您正在打印值:
System.out.println(max.intValue()); System.out.println(min.intValue());
您正在调用方法,但该号码超出了 (32b) 的容量。您应该使用:intValue
int
System.out.println(max); System.out.println(min);
TA贡献2051条经验 获得超10个赞
只需做
BigInteger max = list.stream().max(BigInteger::compareTo).get();
BigInteger min = list.stream().min(BigInteger::compareTo).get();
TA贡献2011条经验 获得超2个赞
答案是:
import java.io.*;
import java.util.*;
public class HelloWorld{
public static void main(String []args){
BigInteger i1 = new BigInteger("4343345345345");
BigInteger i2 = new BigInteger("4343453345345345");
BigInteger i3 = new BigInteger("22");
List<BigInteger> list = new ArrayList<>();
list.add(i1);
list.add(i2);
list.add(i3);
System.out.println(Collections.min(list, Comparator.naturalOrder()));
}
}
添加回答
举报