一、java語言支持四種類型:java
(1)接口(interface):數組
(2)類(class):性能
(3)數組(Array):code
(4)基本類型(primitive):惟一非引用類型(reference type)對象
二、方法簽名:包括方法名稱、參數,不包括返回值;索引
《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《接口
一、foreach循環rem
for (T rf : list) { Map<String,Object> map=ObjectUtil.getFieldMap(rf); datalist.add(map); }
(1)迭代器和索引變量容易引發混亂;一旦出錯,編譯器不必定能發現;get
(2)foreach避免出現混亂;編譯器
(3)foreach沒有性能損失,數組也同樣;
(4)相比於普通for循環,有性能優點,由於對數組邊界值僅計算一次;
(5)兩個集合嵌套式迭代,foreach優點更明顯:
(6)for循環嵌套必須在外層嵌套取出i.next():
(6.1)錯誤 for循環嵌套:
(7)foreach 嵌套則沒必要:
(8)能夠遍歷集合、數組,實現了Iterator接口的對象;
(9)Iterator接口與foreach同時引入java平臺:
(10)一組元素,能夠不實現Collection接口,請實現Iterator接口,這樣可使用foreach;
二、沒法使用foreach狀況
(1)過濾:在遍歷集合,並刪除指定元素時;請顯式使用迭代器,調用它的remove方法;
(2)轉換:在遍歷列表或集合,並取代部分元素值,須要列表迭代器、數組索引,設定元素值;
(3)平行迭代:在並行遍歷多個集合,此時使用嵌套for循環,如(6.1);
三、迭代器Iterator
(1)for循環須要事先知道集合的內部結構,訪問代碼和集合緊密耦合;
(2)Iterator能夠將其分離;
四、迭代器(Iterator)與枚舉(Enumeration)有兩點不一樣:
(1)在迭代期間從迭代器所指向的 collection 移除元素;
(2)方法名稱獲得了改進,只需使用 next()、hasNext() 兩個方法便可完成迭代;