JAVA8新特性--集合遍历之forEach--转载

本文详细介绍并演示了Java8中对于List和Map的多种遍历方式,包括传统的for循环、增强for循环、迭代器以及新引入的forEach方法结合Lambda表达式的使用,展示了更高效、简洁的代码风格。

转载地址:https://blog.youkuaiyun.com/bluuusea/article/details/79949592

测试代码:

import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.function.BiConsumer;
import java.util.function.Consumer;

public class TestForEach {
	public static void main(String[] args) {
		testListForEach();
		System.out.println("\n---Map<K,V>循环---");
		testMapForEach();
	}
	
	/**
	 * List<E>循环
	 */
	public static void testListForEach(){
		List<String> list = Arrays.asList("1","2","3");
		//for循环
		System.out.println("---for循环---");
		for (int i=0;i< list.size();i++){
		    System.out.println(list.get(i));
		}

		//增强for循环
		System.out.println("\n---增强for循环---");
		for(String str : list){
		    System.out.println(str);
		}
		
		//迭代器
		System.out.println("\n---迭代器---");
		Iterator<String> iterator = list.iterator();
		while (iterator.hasNext()){
		    System.out.println(iterator.next());
		}
		
		//forEach遍历--JAVA8新特性
		System.out.println("\n---forEach遍历--JAVA8新特性---");
		list.forEach(new Consumer<String>() {
		    @Override
		    public void accept(String s) {
		        System.out.println(s);
		    }
		});
		//forEach+Lambda表达式--JAVA8新特性
		System.out.println("\n---forEach+Lambda表达式--JAVA8新特性---");
		list.forEach(str->{System.out.println(str);});
		//当循环体中只有一行代码时,可以不用写"{}"
//		list.forEach(str->System.out.println(str));
	}
	
	/**
	 * Map<K,V>循环
	 */
	public static void testMapForEach(){
		Map<String,String> map = new HashMap<>();
		map.put("id","11");
		map.put("name","zhangsan");
		map.put("age","30");
		//entrySet
		for (Map.Entry<String,String> entry : map.entrySet()){
		    System.out.println("k=" + entry.getKey() + ",v=" + entry.getValue());
		}
		//keySet
		for (String key : map.keySet()){
		    System.out.println("k=" + key + ",v=" + map.get(key));
		}
		//迭代器
		Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
		while (iterator.hasNext()){
		    Map.Entry<String, String> entry = iterator.next();
		    System.out.println("k=" + entry.getKey() + ",v=" + entry.getValue());
		}
		//values
		for (String v : map.values()){
		    System.out.println("v=" + v);
		}
		
		//forEach遍历--JAVA8新特性
		map.forEach(new BiConsumer<String, String>() {
		    @Override
		    public void accept(String k, String v) {
		        System.out.println("k=" + k + ",v=" + v);
		    }
		});
		
		//forEach遍历+Lambda表达式--JAVA8新特性
		map.forEach((k,v)->{System.out.println("k=" + k + ",v=" + v);});
		//当循环体中只有一行代码时,可以不用写"{}"
//		map.forEach((k,v)->System.out.println("k=" + k + ",v=" + v));
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值