1

double や integer などの異なる型をリスト内に格納しようとしています。誰かがそれを行う方法の例を教えてもらえますか?

ありがとう

4

4 に答える 4

6

a と aとaList<Number>を保存できますDoubleInteger

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));
于 2013-11-03T21:35:06.690 に答える
2
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);
}
于 2013-11-03T21:35:12.863 に答える
0

たとえば、 Numberクラスを使用できます。より良いオプションは、Integer を Double 値にキャストすることです。

于 2013-11-03T21:35:28.370 に答える
0

このコードを試してください:

List<Number> list = new ArrayList<Number>();
list.add(new Double(0.01));
list.add(new Integer(1));
于 2013-11-03T21:35:28.707 に答える