7

在我的应用程序中,我想将对象转换ArrayList为对象。是否可以?IntegerArrayListLong

4

3 回答 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 中使用 Lambda 表达式

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 回答