今天写代码的时候 突然遇到了object.foreach(item->System.out.println(itme))这个东西,查了一下是Java8的lambda表达式。
lambda表达式相同于数组或者Collection的Iterator都是用来遍历相关数据结构的。
举两个例子,就能知道如何使用。
----------------list----------------
package lambda;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
public class ListLambda {
static List<String> list = new LinkedList<>();
static{
list.add("1Dong");
list.add("2Dong");
list.add("3Dong");
list.add("4Dong");
}
static public void main(String argv[]){
list.forEach(item->System.out.println("element in list : "+item));
Iterator<String> iterator = list.iterator();
while(iterator.hasNext()){
// iterator.next();
System.out.println(iterator.next());
}
for(String item:list){
System.out.println("element in list : "+item);
}
}
}
--------------Result--------------
element in list : 1Dong
element in list : 2Dong
element in list : 3Dong
element in list : 4Dong
1Dong
2Dong
3Dong
4Dong
element in list : 1Dong
element in list : 2Dong
element in list : 3Dong
element in list : 4Dong
package lambda;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class MapLambda {
static Map<Integer,String> map = new HashMap<>();
static {
map.put(1,"1Dong");
map.put(2,"2Dong");
map.put(3,"3Dong");
}
static public void main(String argv[]){
map.forEach((k,v)->System.out.println("Key :"+k+" value : "+v));
for(Map.Entry<Integer,String> entry:map.entrySet()){
System.out.println("Key :"+entry.getKey()+" value : "+entry.getValue());
}
}
}
-----------------Result-----------------
Key :1 value : 1Dong
Key :2 value : 2Dong
Key :3 value : 3Dong
Key :1 value : 1Dong
Key :2 value : 2Dong
Key :3 value : 3Dong