JAVA8之lambda表达式

来源:互联网 发布:怎么运行mysql 编辑:程序博客网 时间:2024/05/21 06:52

一:导入依赖包,配置环境

在project下的build.gradle中

        classpath 'me.tatarka:gradle-retrolambda:3.2.5'

在module下的build.gradle的android{ }中
    compileOptions {        sourceCompatibility JavaVersion.VERSION_1_8        targetCompatibility JavaVersion.VERSION_1_8    }

在module下的build.gradle的defaultConfig{ }中
        jackOptions {            enabled true        }

二.进行代码编写

在activity_main中布局

我写了四个例子,所以用了4个button按钮

MainActivity.java中

public class MainActivity extends AppCompatActivity {    private Button button,button2,button3,button4;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        button = (Button) findViewById(R.id.button);        button2 = (Button) findViewById(R.id.button2);        button3 = (Button) findViewById(R.id.button3);        button4 = (Button) findViewById(R.id.button4);        /*平方数        * 这段代码生成一个整数 list 的平方数 {1, 4, 9, 16}        * */        button.setOnClickListener(new View.OnClickListener() {            @RequiresApi(api = Build.VERSION_CODES.N)            @Override            public void onClick(View view) {                List<Integer> nums = Arrays.asList(1, 2, 3, 4);                List<Integer> squareNums =                        nums.stream()                                .map(n -> n * n)                                .collect(Collectors.toList());                squareNums.forEach(p -> System.out.println(p));            }        });        /*计算集合元素的最大值、最小值、总和以及平均值*/        button2.setOnClickListener(new View.OnClickListener() {            @RequiresApi(api = Build.VERSION_CODES.N)            @Override            public void onClick(View view) {                //获取数字的个数、最小值、最大值、总和以及平均值                List<Integer> primes = Arrays.asList(2, 3, 5, 7, 11, 13, 17, 19, 23, 29);                IntSummaryStatistics stats = primes.stream().mapToInt((x) -> x).summaryStatistics();                System.out.println("Highest: " + stats.getMax());                System.out.println("Lowest: " + stats.getMin());                System.out.println("Sum: " + stats.getSum());                System.out.println("Average of all prime numbers: " + stats.getAverage());                primes.forEach(p -> System.out.println(p));            }        });        /*转换大小写*/        button3.setOnClickListener(new View.OnClickListener() {            @RequiresApi(api = Build.VERSION_CODES.N)            @Override            public void onClick(View view) {                List<String> wordList = Arrays.asList("w","h","l");                List<String> output =                        wordList.stream()                                .map(String::toUpperCase)                                .collect(Collectors.toList());                output.forEach(p -> System.out.println(p));            }        });         /*筛选偶数*/        button4.setOnClickListener(new View.OnClickListener() {            @RequiresApi(api = Build.VERSION_CODES.N)            @Override            public void onClick(View view) {                Integer[] sixNums = {1, 2, 3, 4, 5, 6,7,8,9,10};                Integer[] evens = Stream.of(sixNums)                        .filter(n -> n%2 == 0)                        .toArray(Integer[]::new);                Stream<Integer> stream = Arrays.stream(evens);                stream.forEach(p -> System.out.println(p));            }        });    }}