谁能帮我解释下这段Java代码

 public class CollectionDemo {

    public static void main(String[] args) {
        Collection list= new ArrayList();
        list.add("a");
        list.add("b");
        list.add("c");
        list.iterator().forEachRemaining(lang->System.out.println(lang));//这个lang是什么意思?
    }
}

这个是java8的新特性,Java 8提供了更简洁的语法,lambda表达式,这里就是用lambda表达式来遍历迭代器。
java8中Lambda表达式的书写方式:
(参数) -> 表达式
(参数) -> 语句
(参数) -> { 语句 }
这个例子是第二种语法的使用。实例参考:http://jobar.iteye.com/blog/2023477

java8新特性,还可以这样写:

 list.forEach(lang->System.out.println(lang));//这个lang是什么意思?
 lang是输出list里面的信息,可以像上面这样写。
 遍历map:
 map.forEach((x,y)->{System.out.println(x+"--->"+y)});