JAVA基础随笔之for循环

今天正在看java8新特性的lamada函数式编程,网上很多人都在聊函数式编程怎么样的效率低,我也找了一些相关资料在对比两者的差异到底有多大。

直到我看到下面一句代码时,我有点陌生了!!!!


                for(Iterator it = lists.iterator();it.hasNext();) {
	            System.out.println(it.next());
                }

 好吧,我确实很少这么用,那来回忆下for循环的相关知识

 

一, 基础用法

		List lists =  Arrays.asList( "a", "b", "d" );
		
		for (int i = 0; i < lists.size(); i++) {
			System.out.println(lists.get(i));
		}

 二, 迭代器用法

		for(Iterator it = lists.iterator();it.hasNext();) {
			System.out.println(it.next());
		}

 三,增强for循环

		for(String str:lists) {
			System.out.println(str);
		}	

 四,foreach新特性

		//lamada版
		lists.forEach(s ->System.out.println(s));

		//普通版
		lists.forEach(new Consumer() {

			@Override
			public void accept(String t) {
				// TODO Auto-generated method stub
				System.out.println(t);
			}
		});

增强型for循环和普通循环比较:
     (1)对于非集合类(没有实现 Iterable接口)的数组遍历,增强型for循环和普通循环遍历原理相同,效率相同
     (2)对于集合类(实现了Iterable接口),增强型for循环的遍历其本质就是迭代器 iterator的遍历,和普通循环遍历相比,各自有自己适用的场景,比如说普通for循环比较适合List类(数组类)遍历通过下标查找数据的,而增强型for循环则比较适合链表结构的集合的遍历。

至此。

你可能感兴趣的:(基础随笔,JAVA基础)