如何在列表中存储双精度和整数



我正在尝试在列表中存储不同类型的双精度和整数。有人可以给我举个如何做的例子吗?

谢谢

您可以存储List<Number>并存储DoubleInteger

然而,这可能

不必要地复杂化,因为每个int都可以存储为双精度而不会丢失。

这意味着您可以使用简单但不如 TDoubleArrayList 有效的List<Double>,如果您有很多这些值,则可以将值保留为基元,可以节省相当多的内存和 GC。

List<Double> list = new ArrayList<>();
list.add(1.234); // a double
list.add(1.0);   // a double
list.add((double) 1); // an int.
for(Double d: list)
    System.out.println(d);

使用 TDoubleArrayList

TDoubleArrayList list = new TDoubleArrayList();
list.add(1.234); // a double
list.add(1.0);   // a double
list.add(1); // an int.
for(int i = 0; i < list.size(); i++)
   System.out.println(list.get(i));
List<Number> list = new ArrayList<Number>();
list.add(new Integer());
list.add(new Double());
if(list.get(0) instanceof Integer){
  Integer i = (Integer)list.get(0);
} else {
  Double d = (Double)list.get(0);
}

例如,您可以使用 Number 类。更好的选择是将整数转换为双精度值。

试试这段代码:

List<Number> list = new ArrayList<Number>();
list.add(new Double(0.01));
list.add(new Integer(1));

最新更新