java实现scala的map方法,实现函数式编程
2017-11-28 16:20
399 查看
首先我们需要实现的是,数据在那里不动,有一个方法,可以接受方法作为参数,根据不同的方法,实现不同的结果返回.
类似于scala中的函数作为参数进行传递.
首先我们需要一个容器类,进行方法的定义:
我们再次定义需要实现的接口
3.开始写案例
其实函数式编程,不是太难,只是用java的实现方式写起来太麻烦,所以转投了scala.,
我感觉函数式编程的思想是这样的,以前我们思考问题的方式是这样的,我要靠近一座大山,山动不了,我们自己走到山前面去,就靠近了,
现在函数式编程的思想是,我们不动了,山自己过来....相对于面向对象的编程思想,还是很有难度的.
zhaojun这周日,12月3日,考试普通话,她肯定能够考过去的,我相信她
类似于scala中的函数作为参数进行传递.
首先我们需要一个容器类,进行方法的定义:
import java.util.List; /** * Created by zk on 2017/11/28. * 作用: PACKAGE_NAME. * 改造成返回自身,可以不断的进行.map 的实现 */ public class MyList { private List<String> list; public MyList(List<String> list) { this.list = list; } /** * map方法 * @param mapF * @return */ public MyList map(MapFunction mapF){ for (int i = 0; i < list.size(); i++) { String operate = mapF.operate(list.get(i)); //这里偷懒了一下,直接放到原来的list里面去了,可以新来一个List放入,再放回的 list.set(i,operate); } return this; } /** * get方法 * @return */ public List<String> getList() { return list; } }
我们再次定义需要实现的接口
public interface MapFunction { /** * 操作方法一 * @param str * @return */ String operate(String str); /** * 操作方法二 * @param str * @return */ //String filter(String str); }
3.开始写案例
import java.util.ArrayList; import java.util.List; /** * Created by zk on 2017/11/28. * 作用: PACKAGE_NAME. */ public class FunctionDemo { public static void main(String[] args) { List<String> list= new ArrayList<String>(); list.add("hello"); list.add("zhaojun"); list.add("i miss you very much"); //匿名函数式的方法传递进去了,不想写实现类了,懒 MyList map = new MyList(list).map(new MapFunction() { @Override public String operate(String str) { str += "zhoajun"; String upperCase = str.toUpperCase(); return upperCase; } }).map(new MapFunction() { @Override public String operate(String str) { str += "zhaojun"; return str; } }); //这里还可以继续map下去,不断的进行实现 System.out.println(map.getList()); } }
其实函数式编程,不是太难,只是用java的实现方式写起来太麻烦,所以转投了scala.,
我感觉函数式编程的思想是这样的,以前我们思考问题的方式是这样的,我要靠近一座大山,山动不了,我们自己走到山前面去,就靠近了,
现在函数式编程的思想是,我们不动了,山自己过来....相对于面向对象的编程思想,还是很有难度的.
zhaojun这周日,12月3日,考试普通话,她肯定能够考过去的,我相信她
相关文章推荐
- Java遍历Map的两种实现方法
- Java-第十四章-代参的方法(二)-编程实现,输入班里10名学生的身高,获得身高最高的学生要求对象数组类型方法
- paip.提升效率---filter map reduce 的java 函数式编程实现
- 【Java并发编程】之十五:并发编程中实现内存可见的两种方法比较:加锁和volatile变量
- 【Java并发编程】之十五:并发编程中实现内存可见的两种方法比较:加锁和volatile变量
- Java实现对map或hashmap排序的三种方法或思路
- 【Java并发编程】之十五:并发编程中实现内存可见的两种方法比较:加锁和volatile变量
- 【Java并发编程】:并发编程中实现内存可见的两种方法比较:加锁和volatile变量
- JS自定义对象实现Java中Map对象功能的方法
- java实现map和object互转的三种方法
- 【Java并发编程】之十五:并发编程中实现内存可见的两种方法比较:加锁和volatile变量
- java实现遍历Map的方法
- java编程:三种方法实现斐波那契数列
- Java编程___File各类方法使用(实现拷贝特定文件至特定目录下)
- 在Java中实现UDP协议编程的方法
- JAVA遍历map的几种实现方法代码
- Java通过google map api实现地址解析的方法
- Java遍历Map的两种实现方法
- java实现同步map的几种方法(lock,synchronized,rwlock,ConcurrentHashMap,hashtable,SynchronizedMap)
- java中字符串处理、串联和转换的几个常用方法,以及如果需要自己编程实现的具体实施步骤。