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) );

        }

     

 

    }