私のアプリケーションでは、ArrayList
ofInteger
オブジェクトをArrayList
ofオブジェクトに変換したいと考えていLong
ます。出来ますか?
質問する
22895 次
3 に答える
12
1ライナーではありません。
List<Integer> ints = Arrays.asList(1,2,3,4,5,6,7,8,9);
int nInts = ints.size();
List<Long> longs = new ArrayList<Long>(nInts);
for (int i=0;i<nInts;++i) {
longs.add(ints.get(i).longValue());
}
// または、Java 8 でラムダ式を使用できます
List<Integer> ints = Arrays.asList(1,2,3,4,5,6,7,8,9);
List<Long> longs = ints.stream()
.mapToLong(Integer::longValue)
.boxed().collect(Collectors.toList());
于 2013-03-18T18:26:54.150 に答える
6
いいえ、できません。ジェネリックはポリモーフィックでArrayList<Integer>
はないためです。つまり、 は のサブタイプではないArrayList<Long>
ため、キャストは失敗します。したがって、唯一の方法は、あなたを反復してList<Integer>
に追加することですList<Long>
。
List<Long> longList = new ArrayList<Long>();
for(Integer i: intList){
longList.add(i.longValue());
}
于 2013-03-18T18:22:01.103 に答える
0
ArrayList<Long> longList = new ArrayList<Long>();
Iterator<Integer> it = intList.iterator();
while(it.hasNext())
{
Integer obj = it.next();
longList.add(obj); //will automatically convert Int to Long
}
終わり....
于 2013-03-18T18:26:28.550 に答える