paip.提升效率---filter map reduce 的java 函数式编程实现

#paip.提升效率---filter map
reduce 的java 函数式编程实现

========================================================

#----------------------index索引------------------
++函数式编程的优点儿以及缺点
++actual
code 实际代码例如以下
---filter 实现...
--- map 实现..
---reduce
---调用

##函数式编程的优点儿以及缺点
----------------------------
从声明式编程 取代  命令式编程
的观点来看,函数式编程是个好东东..why >>>how
大多时间哈,,能够easy的理解..

大多时间哈,更是代码短....

可是,有时候,代码很多其它,更长的...预计是java7 没实现lambda 表达式造成的吧..

reduce 使用的递归,可能很多其它的对象生成,,以及堆栈溢出...毕竟,如今的电脑都是基于寄存器的...不是基于堆栈机器..不是基于lambda
list机...

作者 老哇的爪子 Attilax 艾龙,  EMAIL:[email protected]
来源:
http://blog.csdn.net/attilax

##actual code 实际代码例如以下

----------------

###filter 实现...
public static <atiType> atiType
filterO4(atiType arr, Func func) {
        //
List li = new ArrayList();
        // for (int
i = 0; i < objLi.size(); i++) {
        //
String string = objLi.get(i);
        //
boolean o = (Boolean) func.invoke(string);
      
 // if (!o)
        // li.add(string);

        // }

  
     List li = new ArrayList();
  
     if (arr instanceof String[]) {
  
         String[] sa = (String[]) arr;

            for (int i = 0; i <
sa.length; i++) {
          
     String charx = sa[i];
  
             if (!(Boolean)
func.invoke(charx))
          
         li.add(charx);

  
         }
      
     return (atiType) toStrArr(li);
  
     }
        if (arr
instanceof List) {
            
List li3=(List) arr;
          
 for (int i = 0; i <li3.size(); i++) {
  
             String charx =
(String) li3.get(i);
          
     if (!(Boolean) func.invoke(charx))
  
               
 li.add(charx);

          
 }
            return
(atiType)  (li);
        }

        return null;
    }


    ### map 实现..
    
  
 public static List<String> mapx(Object li, Func function) {

        List lir = new ArrayList();

        if (li instanceof List) {
  
         List objLi = (List) li;

            for (int i = 0; i <
objLi.size(); i++) {
          
     Object o = function.invoke(objLi.get(i));

              
 lir.add(i, o);
          
 }
        } else {
  
         Object[] objLi = (Object[]) li;

            for (int i = 0; i <
objLi.length; i++) {
          
     lir.add(function.invoke(objLi[i]));
  
         }
      
 }
        return lir;
  
 }
    
###reduce
public static
<atiType,retType> retType reduceO4d(atiType obj,   Func
function) {
    
      
 retType lastVal = null;
        

        if (obj instanceof List) {
  
         if(lastVal==null)
  
             lastVal=(retType)
new ArrayList();
          
 
            List objLi =
(List) obj;
            for (int
i = 0; i < objLi.size(); i++) {
      
         lastVal =   (retType)
function.invoke(lastVal, objLi.get(i));

      
     }
          
 return (retType) lastVal;
        }

        return null;
    }

###调用
public static void main(String[] args) {
  
     String f = "c:\\li.txt";
  
     List<String> li = filex.read2list(f);

        List<String> li2 =
listUtil.reduceO4d(li, new Func() {

      
     @Override
      
     public Object invoke(Object... o) {
  
             List Last =
(List) o[0];
          
     String s = (String) o[1];
  
             if
(s.contains("@")) {
          
         String[] a = s.split("\\t");

              
     String nowSlect = a[0].trim().replaceAll("@", "");

              
     List li_now=listUtil.toList(nowSlect);
  
               
 li_now=listUtil.deDulicate(li_now);
      
             return 
Last.addAll(li_now);
          
     }
          
     return Last;

      
     }
        });

        filex.saveList2file(li2,
"c:\\catch.txt");
    }

paip.提升效率---filter map reduce 的java 函数式编程实现

时间: 2024-10-05 12:45:55

paip.提升效率---filter map reduce 的java 函数式编程实现的相关文章

Python经常使用内置函数介绍【filter,map,reduce,apply,zip】

Python是一门非常简洁,非常优雅的语言,其非常多内置函数结合起来使用,能够使用非常少的代码来实现非常多复杂的功能,假设相同的功能要让C/C++/Java来实现的话,可能会头大,事实上Python是将复杂的数据结构隐藏在内置函数中,用C语言来实现,所以仅仅要写出自己的业务逻辑Python会自己主动得出你想要的结果.这方面的内置函数主要有,filter,map,reduce,apply,结合匿名函数,列表解析一起使用,功能更加强大.使用内置函数最显而易见的优点是: 1. 速度快,使用内置函数,比

Python中常用内置函数介绍(filter,map,reduce,apply,zip)

Python是一门很简洁,很优雅的语言,其很多内置函数结合起来使用,可以使用很少的代码来实现很多复杂的功能,如果同样的功能要让C/C++/Java来实现的话,可能会头大,其实Python是将复杂的数据结构隐藏在内置函数中,只要写出自己的业务逻辑Python会自动得出你想要的结果.这方面的内置函数主要有,filter,map,reduce,apply,结合匿名函数,列表解析一起使用,功能更加强大.使用内置函数最显而易见的好处是: 1. 速度快,使用内置函数,比普通的PYTHON实现,速度要快一倍左

python中filter, map, reduce, lambda

python 中内置的几个函数filter, map, reduce, lambda简单的例子. #!/usr/bin/env python #_*_coding:utf-8_*_ #filter(function, sequence): #对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回. #可以看作是过滤函数. tasks = [ { 'id': 1, 'title

filter,map,reduce,lambda(python3)

1.filter filter(function,sequence) 对sequence中的item依次执行function(item),将执行的结果为True(符合函数判断)的item组成一个list.string.tuple(根据sequence类型决定)返回. 1 #!/usr/bin/env python 2 # encoding: utf-8 3 """ 4 @author: 侠之大者kamil 5 @file: filter.py 6 @time: 2016/4/

python之lambda,filter,map,reduce函数

g = lambda x:x+1 看一下执行的结果: g(1) >>>2 g(2) >>>3 当然,你也可以这样使用: lambda x:x+1(1) >>>2 可以这样认为,lambda作为一个表达式,定义了一个匿名函数,上例的代码x为入口参数,x+1为函数体,用函数来表示为: def g(x): return x+1 非常容易理解,在这里lambda简化了函数定义的书写形式.是代码更为简洁,但是使用函数的定义方式更为直观,易理解. Python中,

Python学习(五)函数 —— 内置函数 lambda filter map reduce

Python 内置函数 lambda.filter.map.reduce Python 内置了一些比较特殊且实用的函数,使用这些能使你的代码简洁而易读. 下面对 Python 的 lambda.filter.map.reduce 进行初步的学习. lambda 匿名函数 lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值. lambda语句构建的其实是一个函数对象,参考下例来感受下 lambda 匿名函数: 1 def f(i): # 用户自定义返回平方数 2 retur

python——lambda,filter,map,reduce

lambda函数 使用方法:lambda [arg1[,arg2,arg3,...,argn]] : expression 如: add = lambda(x,y:x+y) add(1,2) 结果为1+2=3 filter函数 filter(bool_func,seq) 此函数的功能相当于过滤器,通过返回值为bool的函数bool_func来迭代遍历seq中的每个元素: 结果返回一个seq中使bool_func返回值为true的元素的序列. filter(lambda x : x%2 == 0,

paip.提升效率--数据绑定到table原理和流程Angular js jquery实现

paip.提升效率--数据绑定到table原理和流程Angular js  jquery实现 html #--keyword 1 #---原理和流程 1 #----jq实现的代码 1 #-----Angular 的实现 3 #--keyword jquery 遍历表格tr  td Angular 模板绑定 #---原理和流程 获得所有的行,第一的头行..排除,,,在的所有的删除. 遍历表格tr获得tds的所有的id数组. 根据id/id索引来获得绑定的数据源里面的数据字段..绑定到个td上..

Python内置函数之filter map reduce

Python内置函数之filter map reduce 2013-06-04 Posted by yeho Python内置了一些非常有趣.有用的函数,如:filter.map.reduce,都是对一个集合进行处理,filter很容易理解用于过滤,map用于映射,reduce用于归并. 是Python列表方法的三架马车.1. filter函数的功能相当于过滤器.调用一个布尔函数bool_func来迭代遍历每个seq中的元素:返回一个使bool_seq返回值为true的元素的序列. >>>