PS:需要google的jar包支持
//要用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 list=Lists.newArrayList("moom","bab","coy","kik","dfdfd");
//过滤器,删除不是回文的元素***************************************************
Predicate p=(input)-> new StringBuilder((String) input).reverse().toString().equals(input);
Collection a= Collections2.filter(list, p);
a.forEach(name->System.out.println(name) );//输出每个元素
}
public static void test02() //功能:进行日期转换
{
Collection timeSet=Sets.newHashSet();
Collections.addAll(timeSet, System.currentTimeMillis(),2000_0000_000L);
//定义函数功能
Function f3=(input)->new SimpleDateFormat("yyyy-MM-dd").format(input);
//对指定容器执行函数
Collection timestrcol= Collections2.transform(timeSet, f3);
//输出每个元素
timestrcol.forEach(name->System.out.println(name) );
}
public static void test03() //功能:确保容器中字符串长度不超过5,并且全部变成大写
{
List list2=Lists.newArrayList("moomwergf","babkjsdhf","coy","kik","dfdfdkd");
//lambda表达式,函数f1,控制容器内元素长度小于等于5
Function f1=(input)->input.length()>5?input.substring(0, 5):input;
//lambda表达式,函数f1,将元素转换成大写
Function f2=(input)->input.toUpperCase();
//函数式编程,Functions.compose(f1, f2)组合函数f1,和函数f2
Collection list3= Collections2.transform(list2, Functions.compose(f1, f2));
//输出每个元素
list3.forEach(name->System.out.println(name) );
}
}
lambda表达式--函数式编程
最新推荐文章于 2021-10-16 12:16:25 发布
本文通过几个示例展示了如何使用Guava工具类实现容器元素过滤、日期转换及字符串处理等功能,帮助开发者更好地理解和运用Guava。
1万+

被折叠的 条评论
为什么被折叠?



