在我的应用程序中,我想将对象转换ArrayList
为对象。是否可以?Integer
ArrayList
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 中使用 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 回答