Java学习之路(13)----迭代器(Iterator)

Iterator

抽象类,不能实例化

public interface Iterator {  
  boolean hasNext();  
  Object next();  
  void remove();  
} 

迭代器 iterator 用法
Java 中的 Iterator 只能单向移动:

(1) 使用方法 iterator() 要求容器返回一个 Iterator。第一次调用 Iterator 的 next() 方法时,它返回序列的第一个元素。

注意:iterator() 方法是 java.lang.Iterable 接口,被 Collection 继承。

(2) 使用 next() 获得序列中的下一个元素。

(3) 使用 hasNext() 检查序列中是否还有元素。

(4) 使用 remove() 将迭代器新返回的元素删除,即删除当前元素。

基本用法:有一篇博客写的很好

import java.util.*;
public class ArrayListDemo{
	
	// public static void main(String[] args){
		// int i;
		// List<String> list1 = new ArrayList<String>();
		// list1.add("gyy");
		// list1.add("g1");
		// list1.add("g2");
		
		// for(String str:list1){
			
			// System.out.println(str);
		// }
		
		// String[] s = new String[list1.size()];
		
		// list1.toArray(s);
		// for(i=0;i<s.length;i++){
			
			// System.out.println(s[i]);
		// }
		
		// Iterator<String> ii = list1.iterator();//Iterator是抽像的,无法实例化
		// while(ii.hasNext()){
			// System.out.println(ii.next());
		// }
	// }
	
	
	public static void main(String[] args){
		int i;
		List<Integer> list1 = new ArrayList<Integer>();
		list1.add(11);
		list1.add(22);
		list1.add(33);
		
		for(Integer l1:list1){
			
			System.out.println(l1);
		}
		
		Integer[] s = new Integer[list1.size()];
		
		list1.toArray(s);
		for(i=0;i<s.length;i++){
			
			System.out.println(s[i]);
		}
		
		Iterator<Integer> ii = list1.iterator();//Iterator是抽像的,无法实例化
		while(ii.hasNext()){
			System.out.println(ii.next());
		}
	}
}

ArrayList遍历

ArrayList遍历,3种方法
采用迭代器,并将Integer转化为int

import java.util.*;
public class ArrayListDemo{
	
	// public static void main(String[] args){
		// int i;
		// List<String> list1 = new ArrayList<String>();
		// list1.add("gyy");
		// list1.add("g1");
		// list1.add("g2");
		
		// for(String str:list1){
			
			// System.out.println(str);
		// }
		
		// String[] s = new String[list1.size()];
		
		// list1.toArray(s);
		// for(i=0;i<s.length;i++){
			
			// System.out.println(s[i]);
		// }
		
		// Iterator<String> ii = list1.iterator();//Iterator是抽像的,无法实例化
		// while(ii.hasNext()){
			// System.out.println(ii.next());
		// }
	// }
	
	
	public static void main(String[] args){
		int i;
		List<Integer> list1 = new ArrayList<Integer>();
		list1.add(11);
		list1.add(22);
		list1.add(33);
		
		for(Integer l1:list1){
			
			System.out.println(l1);
		}
		
		Integer[] s = new Integer[list1.size()];
		
		list1.toArray(s);
		for(i=0;i<s.length;i++){
			
			System.out.println(s[i]);
		}
		int[] kk= new int[list1.size()];
		int j=0;
		Iterator<Integer> ii = list1.iterator();//Iterator是抽像的,无法实例化
		
		while(ii.hasNext()){
			kk[j]=ii.next().intValue();
			System.out.println(kk[j]);
			j++;
		}
		for(int k:kk){
			System.out.println("-------");
			System.out.println(k);
		}
		
	}
}

Map遍历

Map遍历四种方法

//map遍历
import java.util.*;
public class MapIteratorDemo{
	
	public static void main(String[] args){
		
		Map<String,String> mm = new HashMap<String,String>();
		mm.put("gyy","11g");
		mm.put("gy1","12g");
		mm.put("gy2","13g");
		System.out.println("---key---");
		for(String key:mm.keySet()){
			
			System.out.println(key);
		}
		System.out.println("---v---");
		for(String v:mm.values()){//方法小写。类大写
			System.out.println(v);
		}
		System.out.println("---kk-vv----");
		for(Map.Entry<String,String> ee:mm.entrySet()){
			
			System.out.println(ee);
		}
		
		Iterator<Map.Entry<String,String>> ii = mm.entrySet().iterator();
		System.out.println("---iterator---");
		while(ii.hasNext()){
			System.out.println(ii.next());
		}
		
	}
}
发布了53 篇原创文章 · 获赞 4 · 访问量 1317

猜你喜欢

转载自blog.csdn.net/weixin_43351473/article/details/104425981