首页 > 技术文章 > Java8(一)

liang-zisong 2018-01-25 14:44 原文

import java.io.Serializable;

public class Apple implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 858011345421237690L;

    private String colour;
    private Integer weight;
    
    public Apple(Builder builder) {
        this.colour = builder.colour;
        this.weight = builder.weight;
    }
    public String getColour() {
        return colour;
    }
    public Integer getWeight() {
        return weight;
    }
    
    public static class Builder{
        private String colour;
        private Integer weight;
        public Builder() {}
        public Builder setColour(String colour) {
            this.colour = colour;
            return this;
        }
        public Builder setWeight(Integer weight) {
            this.weight = weight;
            return this;
        }
        public Apple builder() {
            return new Apple(this);
        }
    }

    @Override
    public String toString() {
        return "Apple [colour=" + colour + ", weight=" + weight + "]";
    }


}

华丽的分割线

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;

public class Farmer {

    public static void main(String[] args) {
        List<Apple> apples = Arrays.asList(
                new Apple.Builder().setColour("red").setWeight(150).builder(),
                new Apple.Builder().setColour("red").setWeight(140).builder(),
                new Apple.Builder().setColour("red").setWeight(160).builder(),
                new Apple.Builder().setColour("yellow").setWeight(170).builder()
                );
        List<Apple> result = new ArrayList<>();
        Farmer farmer = new Farmer();
        apples.forEach(apple -> {
            if(farmer.test(apple))result.add(apple);
        });
        result.forEach(System.out :: println);
        result.sort((Apple o1,Apple o2) -> o1.getWeight().compareTo(o2.getWeight()));
        System.out.println();
        result.forEach(System.out :: println);
     //创建线程 Thread thread
= new Thread(()->{ System.out.println(123); }); thread.start(); }
  //筛选
public boolean test(Apple apple) { return "red".equals(apple.getColour())&&apple.getWeight()>=150; } }

 输出:


推荐阅读