List和Map集合的幾種周遊方式
- List集合的周遊
-
- 一,通過Itetator接口周遊:
- 二,foreach循環周遊
- Map集合的周遊
-
- 方式一
- 方式二
- 方式三
List集合的周遊
一,通過Itetator接口周遊:
Itetator主要用于周遊Collection中的元素,它也被稱為疊代器
執行個體:
public class Exception01 {
public static void main(String[] args) {
//建立ArrayList集合
ArrayList<String> arrayList = new ArrayList<String>();
arrayList.add("張三");
arrayList.add("李四");
arrayList.add("王二");
arrayList.add("麻子");
Iterator<String> iterator = arrayList.iterator();//獲得Iterator對象
while(iterator.hasNext()){//判斷該集合是否有下一個元素
String next = iterator.next();//如果有取出來
System.out.println(next);//列印輸出
}
}
}
在使用iterator疊代集合的元素是,如果你調用了集合對象的remove()方法删除元素時,會出現異常,如下執行個體:
public class Exception01 {
public static void main(String[] args) {
//建立ArrayList集合
ArrayList<String> arrayList = new ArrayList<String>();
arrayList.add("張三");
arrayList.add("李四");
arrayList.add("王二");
arrayList.add("麻子");
Iterator<String> iterator = arrayList.iterator();//獲得Iterator對象
while(iterator.hasNext()){//判斷該集合是否有下一個元素
String next = iterator.next();//如果有取出來
if ("張三".equals(next)){
arrayList .remove(next);//此處的remove()方法是集合内部的方法
}
System.out.println(next);//列印輸出
}
}
}
運作結果:
該如何解決這個問題,我們隻需要調用疊代器的remove()即可。将上面的代碼arrayList .remove(next);替換成iterator.remove();即可正常運作。
二,foreach循環周遊
jdk1.5提供的foreach循環,該循環是一個更加簡潔的for循環,也稱為增強for循環。
public class Exception01 {
public static void main(String[] args) {
//建立ArrayList集合
ArrayList<String> arrayList = new ArrayList<String>();
arrayList.add("張三");
arrayList.add("李四");
arrayList.add("王二");
arrayList.add("麻子");
//for(容器元素的類型 臨時變量:容器變量){}
for (String arr : arrayList) {
System.out.println(arr);
}
}
}
Map集合的周遊
方式一
先周遊所有key,再根據key取值
執行個體:
public class Exception05 {
public static void main(String[] args) {
//建立一個map
Map hashMap = new HashMap();
//通過put(key, value)方法存儲
hashMap.put("name1", "張一");
hashMap.put("name2", "張二");
hashMap.put("name3", "張三");
hashMap.put("name4", "張四");
Set keySet = hashMap.keySet();//獲得鍵的集合
Iterator iterator = keySet.iterator();//疊代集合
while (iterator.hasNext()){//判斷是否有下一個key
Object key = iterator.next();//取出key
Object value = hashMap.get(key);//根據key取值
System.out.println(key +":"+ value);
}
}
}
方式二
map集合中提供的有一個values()方法,通過這個方法可以直接獲得map中存儲所有值的 Collertion集合。
執行個體:
public class Exception05 {
public static void main(String[] args) {
//建立一個map
Map hashMap = new HashMap();
//通過put(key, value)方法存儲
hashMap.put("name1", "張一");
hashMap.put("name2", "張二");
hashMap.put("name3", "張三");
hashMap.put("name4", "張四");
Collection values = hashMap.values();
Iterator iterator = values.iterator();
while (iterator.hasNext()){
Object value = iterator.next();
System.out.println(value);
}
}
}
方式三
通過for循環實作map集合的周遊
public class Exception05 {
public static void main(String[] args) {
//建立一個map
Map<String,String> hashMap = new HashMap<String,String>();
//通過put(key, value)方法存儲
hashMap.put("name1", "張一");
hashMap.put("name2", "張二");
hashMap.put("name3", "張三");
hashMap.put("name4", "張四");
for (Map.Entry<String,String> map : hashMap.entrySet()){
String key = map.getKey();
String value = map.getValue();
System.out.println(key + ":" + value);
}
}
}
加油吧!!!