java中集合Collection轉list對象


參考:java中集合Collection轉list對象

首先我的需求是獲取到購物車列表,購物車列表是一個Map對象,構造方法獲取購物項,這里購物項是Collection對象

// 購物項集合,K商品ID,V就是購物項
Map<Integer, CartItem> map = new LinkedHashMap<Integer, CartItem>();
public Collection<CartItem> getCartItems() {
return map.values();
}
我們需求獲取購物項轉成list,嘗試強轉,

List<CartItem> cartItems =(List<CartItem>) cart.getMap().values();
報錯了,這個時候感覺很無奈,查閱資料,查看ArrayList底層代碼:

public ArrayList(Collection<? extends E> c) {
elementData = c.toArray();
if ((size = elementData.length) != 0) {
// c.toArray might (incorrectly) not return Object[] (see 6260652)
if (elementData.getClass() != Object[].class)
elementData = Arrays.copyOf(elementData, size, Object[].class);
} else {
// replace with empty array.
this.elementData = EMPTY_ELEMENTDATA;
}
}
將collection轉為object數組返回,可以通過這種方法來轉為list對象:

List<CartItem> cartItems = new ArrayList<CartItem>(cart.getMap().values());
System.out.println(cartItems);
完美轉化,這里只是做了collection轉list,其他轉化后面再添加。
---------------------
作者:go_code
來源:CSDN
原文:https://blog.csdn.net/qq_27908393/article/details/82020704
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM