这是我正在学习的Java课程中的一个问题。在书中应该如何获得最大的数字。我重新做了它,以便我可以找到最小的数字,我想找出如何在函数中获取求和。我得到了一个数字,但它不是数组列表 = 新数组列表((;如果可以的话,请帮忙,谢谢!!
package chapter_13;
import java.util.ArrayList;
import java.math.*;
import java.lang.Number;
public class LargestNumbers_2
{
public static void main(String[] args) {
ArrayList<Number> list = new ArrayList<Number>();
//list.add(0);
list.add(45); // Add an integer
list.add(3445.53); // Add a double
// Add a BigInteger
list.add(new BigInteger("3432323234344343101"));
// Add a BigDecimal
list.add(new BigDecimal("2.0909090989091343433344343"));
System.out.println("The largest number is " +
getLargestNumber(list));
ArrayList<Number> list2 = new ArrayList<>();
list2.add(3445.53); // Add a double
list2.add(45); // Add an integer
//list2.add(3445.53); // Add a double
// Add a BigInteger
list2.add(new BigInteger("3432323234344343101"));
// Add a BigDecimal
list2.add(new BigDecimal("2.0909090989091343433344343"));
System.out.println("nThe smallest number ist" +
getSmallestNumber(list2));
ArrayList<Number> list3 = new ArrayList<>();
list3.add(3445.53); // Add a double
//list3.add(45); // Add an integer
list3.add(3445.53); // Add a double
// Add a BigInteger
list3.add(new BigInteger("3432323234344343101"));
// Add a BigDecimal
list3.add(new BigDecimal("2.0909090989091343433344343"));
System.out.println("nThe number ist" +
getSumNumber(list3));
System.out.println("Testt" + getSumNumber(list3));
}
public static Number getLargestNumber(ArrayList<Number> list)
{
if (list == null || list.size() == 0)
return null;
Number number = list.get(0);
for (int i = 1; i < list.size(); i++)
{
if (number.doubleValue() < list.get(i).doubleValue())
number = list.get(i);}
return number;
}
//public static Number getSumNumber(ArrayList<Number> list3)
//public static Number getSumNumber(ArrayList<Number> list3)
public static Number getSumNumber(ArrayList<Number> list3)
{
//if (list3 == null || list3.size() == 0)
//return null;
//Number number3 = list3.get(0);
//double number2 = 0.0; //10000000;
Number total = 0;
//double total = 0.0;
/*
for (int i = 1; i < list3.size(); i++)
{
double total1 = total;
}
*/
// calculate sum
for (Number element : list3)
//total += element.doubleValue();
total += Number[element];
//return total;
return total;
//return number3;
}
public static Number getSmallestNumber(ArrayList<Number> list2)
{
if (list2 == null || list2.size() == 0)
return null;
Number number2 = list2.get(3); //4
//Number number2 = 10000000;
for (int i = 1; i > list2.size(); i++)
{
if (number2.doubleValue() > list2.get(i).doubleValue())
number2 = list2.get(i);
}
return number2;
}
}
数字不允许这样做...
相反,您可以执行类似操作
BigDecimal total = new BigDecimal(0);
for (Number element : list3) //total += element.doubleValue();
{
total.add((BigDecimal)element);
}
未为参数类型定义运算符 java.lang.Number。
BigDecimal total = new BigDecimal(0);
for (Number element : list3) {
total = total.add(new BigDecimal(element.toString()));
}
refs:如何添加两个java.lang.Numbers? 回答者:Fritz Mock