リストコレクションとマップコレクションのいくつかの走査方法
リストコレクションの走査
1つは、Itetatorインターフェースをトラバースします。
イテレータは主にコレクション内の要素をトラバースするために使用され、イテレータ
インスタンスとも呼ばれます。
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);//打印输出
}
}
}
イテレータを使用してコレクションの要素を反復処理するときに、コレクションオブジェクトの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();に置き換えて、正常に実行します。
2、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);
}
}
}
マップコレクションのトラバーサル
方法1
最初にすべてのキーをトラバースしてから、キーに従って値を取得します。
例:
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);
}
}
}
方法2
マップコレクションにはvalues()メソッドが用意されており、マップに保存されているすべての値の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);
}
}
}
方法3
forループを介してマップコレクションのトラバーサルを実現します
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);
}
}
}
いい加減にして!!!