使用java模拟scala函数式编程将函数作为参数传入方法中

来源:互联网 发布:c专家编程 txt 编辑:程序博客网 时间:2024/06/15 19:41

需求:将一个list集合传入一个方法中,同时传入一个函数,根据传入函数的不同对集合做不同的处理


方法:定义一个接口,并定义一个方法option,测试中调用一个方法传入的参数是list和函数,函数就是该接口的实现类。


代码如下:

接口

package me.season.com;import java.util.ArrayList;public interface OptionMethod2 {public ArrayList<Integer> option(ArrayList<Integer> list);}

主要代码

package me.season.com;import java.util.ArrayList;public class test2 {public static void main(String[] args) {ArrayList<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);list.add(4);list.add(5);list.add(6);ArrayList<Integer> met = test2.met(list, new OptionMethod2(){@Overridepublic ArrayList<Integer> option(ArrayList<Integer> list) {ArrayList<Integer> arr = new ArrayList<>();for (Integer ii : list) {int i = ii*ii;arr.add(i);}return arr;}});for (Integer i : met) {System.out.print(i+"  ");}}public static ArrayList<Integer> met(ArrayList<Integer> list,OptionMethod2 op){ArrayList<Integer> arr = op.option(list);return arr;}}

met方法中传入了一个需要处理的list集合,并new了一个接口,实现了option()方法

根据具体的实现方法,将list作了不同的处理。

正好最近学习Scala的函数式编程,就写了这么个程序来理解一下。

0 0