Lambda Basic
function has 4 things
- name
- parameter list
- body
- return type
Thread th = new Thread(new Runnable(){
public void run(){
Sysout.out.println("In side Thread");
}
});
th.start();
lambda expression
1. name
- parameter list
- body
4. return type
Thread th = new Thread(() ->Sysout.out.println("In side Thread"));
th.start();
iterators
List<Integer> numbers = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
//external iterators
for(int i = 0; i < numbers.size(); i++){
System.out.println(numbers.get(i));
}
//external iterators also
for( int e : numbers){
System.out.println(e);
}
//interal iterators
numbers.forEach(new Consumer<Integer(){
public void accept(Integer value){
System.out.println(value);
}
});
numbers.forEach((Integer value) ->System.out.println(value));
numbers.forEach((value) ->System.out.println(value));
//only for on parameter lambdas
numbers.forEach(value ->System.out.println(value));
numbers.forEach(System.out::println);
//ANTI PATTERN :: DO NOT USE LIKE THIS!
number.forEach(e -> {
...;
...;
...;
return ... need return...;
});
Parameter
List<Integer> numbers = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
numbers.stream()
//.map(e -> String.valueOf(e))
.map(String::valueOf)
.forEach(System.out::println);
numbers.stream()
.map(e -> String.valueOf(e))
//.map(e -> e.toString())
.map(String::toString)
.forEach(System.out::println);
Two parameter
List<Integer> numbers = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
System.out.println(
numbers.stream()
//.reduce(0, (total, e) -> Integer.sum(total, e)));
.reduce(0, Integer::sum));
);
System.out.println(
numbers.stream()
.map(String::valueOf)
//.reduce("", (carry, str) -> carry.concat(str)));
.reduce("", String::concat));
);
Stream
List<Integer> numbers = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
//given thevalues, double the even numbers and total.
int result = 0;
for(int e : numbers){
if(e % 2 == 0){
result += e*2;
}
}
System.out.println(result);
System.out.println(
numbers.stream()
.filter(e -> e % 2 == 0)
.mapToInt(e ->e * 2)
//.reduce(0, Integer::sum));
.sum();
);
출처
Get a Test of Lambda.md