double や integer などの異なる型をリスト内に格納しようとしています。誰かがそれを行う方法の例を教えてもらえますか?
ありがとう
a と aとaList<Number>
を保存できますDouble
Integer
int
ただし、すべてを失うことなく double として格納できるため、これを扱うのは不必要に複雑になる可能性があります。
List<Double>
これは、プリミティブとして値を保持する TDoubleArrayList ほど効率的ではありませんが、使用できることを意味します。プリミティブが大量にある場合は、かなりのメモリと 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クラスを使用できます。より良いオプションは、Integer を Double 値にキャストすることです。
このコードを試してください:
List<Number> list = new ArrayList<Number>();
list.add(new Double(0.01));
list.add(new Integer(1));