用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

lambda表达式--函数式编程

2015-12-20 作者: 永夜极光举报

[java]代码库

需要google的jar包支持
 
package s0222函数式编程和lambda表达式;
//要用guava的jar包,我重新安装了eclipse 没有关联
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import com.google.common.base.Function;
import com.google.common.base.Functions;
import com.google.common.base.Predicate;
import com.google.common.collect.Collections2;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
 
public class Main {
    public static void  main(String [] args)
    {
       
      test01();   //容器元素过滤器
      test02();   //进行日期转换
      test03();   //组合函数
 
    }
     
    public static void test01() //功能:过滤器
    {
         
         
               
               
        List<String > list=Lists.newArrayList("moom","bab","coy","kik","dfdfd");
         //过滤器,删除不是回文的元素***************************************************
        Predicate<String> p=(input)-> new StringBuilder((String) input).reverse().toString().equals(input);
          Collection<String> a= Collections2.filter(list, p);
          a.forEach(name->System.out.println(name) );//输出每个元素
           
    }
     
    public static void test02()     //功能:进行日期转换
    {
         Collection<Long> timeSet=Sets.newHashSet();
         Collections.addAll(timeSet, System.currentTimeMillis(),2000_0000_000L);
         //定义函数功能
         Function<Long,String> f3=(input)->new SimpleDateFormat("yyyy-MM-dd").format(input);
         //对指定容器执行函数
         Collection<String> timestrcol= Collections2.transform(timeSet, f3);
         //输出每个元素
         timestrcol.forEach(name->System.out.println(name) );
    }
     
    public static void test03() //功能:确保容器中字符串长度不超过5,并且全部变成大写
    {  
         List<String> list2=Lists.newArrayList("moomwergf","babkjsdhf","coy","kik","dfdfdkd");    
        //lambda表达式,函数f1,控制容器内元素长度小于等于5
          
        Function<String,String> f1=(input)->input.length()>5?input.substring(0, 5):input;
        //lambda表达式,函数f1,将元素转换成大写
         
        Function<String,String> f2=(input)->input.toUpperCase();                     
        //函数式编程,Functions.compose(f1, f2)组合函数f1,和函数f2
         
        Collection<String> list3= Collections2.transform(list2, Functions.compose(f1, f2));
        //输出每个元素
        list3.forEach(name->System.out.println(name) );
    }
     
 
}


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...