import com.alibaba.fastjson.JSON; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; import java.util.function.Supplier; /** * Created by houxiurong on 2017/8/9. */ public class FunctionInterfaceDemo { /** * 断言型lambda */ public static boolean doPredicate(int age, Predicate<Integer> predicate) { return predicate.test(age); } /** * 消费型lambda */ public static void donation(Integer money, Consumer<Integer> consumer) { consumer.accept(money); } /*** 供给型接口 */ public static List<Integer> supply(Integer num, Supplier<Integer> supplier) { List<Integer> resultList = new ArrayList<>(); for (int x = 0; x < num; x++) { resultList.add(supplier.get()); } return resultList; } /** * 函数型 */ public static Integer convert(String str, Function<String, Integer> function) { return function.apply(str); } /** * 断言型 */ public static List<String> filter(List<String> fruit, Predicate<String> predicate) { List<String> f = new ArrayList<>(); for (String s : fruit) { if (predicate.test(s)) { f.add(s); } } return f; } public static void main(String[] args) { boolean isAdult = doPredicate(22, x -> x >= 18); System.out.println("断言型lambda:" + isAdult); //消费型 donation(1000, money -> System.out.println("好心的麦乐迪为Blade捐赠了" + money + "元")); //供给型 List<Integer> list = supply(10, () -> (int) (Math.random() * 100)); //list.forEach(System.out::println); //函数型 Integer integer = convert("28", x -> Integer.parseInt(x)); System.out.println("函数型:" + integer); //断言型 List<String> fruit = Arrays.asList("香蕉", "哈密瓜", "榴莲", "火龙果", "水蜜桃"); List<String> newFruit = filter(fruit, (f) -> f.length() == 3); System.out.println(JSON.toJSONString(newFruit)); //list的sort List<Integer> sortlist = Arrays.asList(2, 7, 3, 1, 8, 6, 4, 10); //sortlist.sort(Comparator.naturalOrder());//自然顺序 sortlist.sort(Comparator.reverseOrder());//自然倒序 System.out.println(JSON.toJSONString(sortlist)); } }
本文作者:
侯秀荣
版权声明:
本文版权内容属于 [houxiurong.com] 转载请标明出处;本站提供的一切信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途。
评论一下?