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()));
}
}
添加回答
舉報