Collection、Map、數組 遍歷方式


結論:無論是數組還是Collection for each 都是一個非常好的選擇

一、for each底層實現

對於Collection,for each是隱式調用Iterator實現的,效率比顯示調用Iterator略低,對於Array,for each是通過對下標引用實現的,效率比for循環要略低。for each返回的是Collection一個對象,因此不能用for each進行賦值操作。

二、Collection實現了java.lang.Iterable接口具有java.util.Iterator<E> iterator(),所以List、Queue、Set均可使用for each方式遍歷。

三、HashMap三種遍歷方式:

map.entrySet()會返回一個Set<Entry<K,V>>,然后使用for each(隱式調用Iterator)

Map<String, String> map = new HashMap<String, String>();
for (Entry<String, String> entry : map.entrySet()) {
    entry.getKey();
    entry.getValue();
}

 ②map.keySet()會返回一個Set<Key>,然后使用for each(隱式調用Iterator)

Map<String, String> map = new HashMap<String, String>();
for (String key : map.keySet()) {
	map.get(key);
}

 ③map.value()會返回一個Collection<Value>,然后使用for each(隱式調用Iterator)

 

Array轉List

String[] strArray = {"aaa", "bbb", "ccc"};   
List list= Arrays.asList(strArray);  

注意list為ArrayList類型,但和java.util.ArrayList是不一樣的。StrArray必須為對象數組,如果為基本類型數組的話,list.size()為1,

Collection轉數組
直接使用Collection的toArray()方法

Map轉Collection
直接使用Map的values()方法。
List和Set轉換

直接通過構造函數傳遞一個Collection對象即可。

 

 參考文獻:http://www.cnblogs.com/xwdreamer/archive/2012/05/30/2526822.html


免責聲明!

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



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