Iterator的使用

用迭代器迭代Collection

Posted by Ruizhi Ma on July 9, 2019

TestIterator类

package cn.sxt.collection;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

public class TestIterator {

	public static void main(String[] args) {
		testIteratorList();
//		testIteratorSet();
//		testIteratorMap();
		
		testRemove();
	}
	
	public static void testIteratorList() {
		List<String> list = new ArrayList<String>();
		list.add("ad");
		list.add("bb");
		list.add("cc");
		
		//用迭代器遍历List
		for(Iterator<String> iterator = list.iterator();iterator.hasNext();){
			String temp = iterator.next();
			System.out.println(temp);
		}
	}
	
	public static void testIteratorSet(){
		Set<String> set = new HashSet<String>();
		set.add("aa");
		set.add("bb");
		set.add("cc");
		
		//使用iterator遍历Set
		for(Iterator<String> iter = set.iterator(); iter.hasNext();){
			String temp = iter.next();
			System.out.println(temp);
		}
	}
	
	public static void testIteratorMap(){
		Map<Integer, String> map1 = new HashMap<>();
		map1.put(100,"a");
		map1.put(200,"b");
		map1.put(300,"c");
		
		//第一种遍历Map的方式
		Set<Entry<Integer, String>> s = map1.entrySet();
		for(Iterator<Entry<Integer, String>> iter = s.iterator(); iter.hasNext();){
			Entry<Integer, String> temp = iter.next();
			System.out.println(temp.getKey() + "---" + temp.getValue());
		}
		System.out.println("===========================");
		//第二种遍历Map的方式
		Set<Integer> keySet = map1.keySet();
		for(Iterator<Integer> iter = keySet.iterator(); iter.hasNext();){
			Integer key = iter.next();
			System.out.println(key + "---" + map1.get(key));
		}
	}
	
	//测试边遍历,边删除
		public static void testRemove(){
			List<String> list = new ArrayList<>();
			for(int i=0;i<20;i++){
				list.add("gao"+i);
			}
			
			for(int i=0;i<list.size();i++){
				String temp = list.get(i);
				if(temp.endsWith("2")){
					list.remove(i);
				}
				System.out.println(list.size()); 
				System.out.println(list.get(i));  
			}
			
			
		}
	
}