在我的应用程序中,我想将ArrayList
个Integer
个对象转换为ArrayList
个Long
个对象。有可能吗?
答案 0 :(得分:8)
不在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());
}
答案 1 :(得分:4)
不,你不能因为,泛型不是多态的。即,ArrayList<Integer>
不是ArrayList<Long>
的子类型,因此强制转换将失败。
因此,唯一的方法是迭代List<Integer>
并将其添加到List<Long>
。
List<Long> longList = new ArrayList<Long>();
for(Integer i: intList){
longList.add(i.longValue());
}
答案 2 :(得分:0)
有关转换列表的示例,请参阅here。当然有可能。
答案 3 :(得分: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
}
完成....