用户注册



邮箱:

密码:

用户登录


邮箱:

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

发表随想


还能输入: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、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

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

加载中,请稍后...