2013-03-18 129 views
0

在我的應用程序中,我想將Integer對象的ArrayList轉換爲Long對象的ArrayList。可能嗎?是否有可能將ArrayList <Integer>轉換爲ArrayList <Long>?

+0

你不能直接做。也許這篇文章可以幫助你:http://stackoverflow.com/questions/6690745/converting-integer-to-long – MikO 2013-03-18 18:23:54

+0

爲什麼你需要這個? – Suranga 2013-03-18 18:24:09

+0

Ohhhh guyes。你爲什麼投票否決這個問題? – 2013-03-18 18:25:55

回答

6

不以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()); 
} 
+0

輝煌!沒有你的答案,我無法將其轉換! 非常感謝! – 2013-03-18 18:37:16

2

不,你不能這樣做,因爲泛型不是多態的,即ArrayList<Integer>不是ArrayList<Long>的子類型,因此鑄造將失敗。 因此,唯一的方法是迭代你的List<Integer>並將其添加到List<Long>

List<Long> longList = new ArrayList<Long>(); 
for(Integer i: intList){ 
longList.add(i.longValue()); 
} 
+0

謝謝!但是這不起作用! – 2013-03-18 18:34:27

+0

對不起!現在我已經選擇了正確的答案 – 2013-03-18 18:41:15

0

有關轉換列表的示例,請參閱here。當然這是可能的。

+1

該操作將不得不考慮一下,但如果它可能轉換Integer - > Long它可能轉換它們的列表。 – Nix 2013-03-18 18:24:52

+1

@從錯誤中學習,你不能*拋出這兩個。但是,您可以將整數從字符串解析爲長整數,正如我的MikO在對該問題的評論中指出的那樣。而且我知道這個鏈接並不是OP要求的,但是如果他把時間花在了Google所尋找的東西上,他會找到答案。 – rbedger 2013-03-18 18:30:01

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 
} 

完成....

相關問題