JAVA-8 learn 01-02
3185 단어 java-8
package com.tianmeng.java8;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import static java.lang.Thread.currentThread;
/**
* @program: java8
* @descriptioin:
* @author: TIANMENG
* @date: 2019-11-14 22:19
**/
public class FilterApple {
//@FunctionalInterface
public interface AppleFilter{
boolean filter(Apple apple);
}
public static List findApple(List apples, AppleFilter appleFilter){
List list = new ArrayList<>();
for (Apple apple : apples){
if (appleFilter.filter(apple)){
list.add(apple);
}
}
return list;
}
public static class GreenAnd160WeightFilter implements AppleFilter{
@Override
public boolean filter(Apple apple) {
return apple.getColor().equals("green") && apple.getWeight() >= 160;
}
}
public static List findGreenApple(List apples){
List list = new ArrayList<>();
for (Apple apple : apples){
if ("green".equals(apple.getColor())){
list.add(apple);
}
}
return list;
}
public static List findApple(List apples, String color){
List list = new ArrayList<>();
for (Apple apple : apples){
if (apple.getColor().equals(color)){
list.add(apple);
}
}
return list;
}
public static void main(String[] args) throws InterruptedException {
List list = Arrays.asList(
new Apple("green",150),
new Apple("yellow",120),
new Apple("green",170));
// List greenApples = findGreenApple(list);
// assert greenApples.size() == 2;
// List greenApples = findApple(list,"green");
// List redApples = findApple(list, "red");
// System.out.println(greenApples);
// System.out.println(redApples);
List result = findApple(list, new GreenAnd160WeightFilter());
// System.out.println(result);
List yellowApple = findApple(list, new AppleFilter() {
@Override
public boolean filter(Apple apple) {
return "yellow".equals(apple.getColor());
}
});
// System.out.println(yellowApple);
List lambdaResult = findApple(list, apple -> {
return apple.getColor().equals("green");
});
// System.out.println(lambdaResult);
new Thread(new Runnable() {
@Override
public void run() {
System.out.println(currentThread().getName());
}
}).start();
new Thread(() -> {
System.out.println(currentThread().getName());
}).start();
currentThread().join();
}
}