Lambda表达式java
public void test01() { Comparator<Integer> comparator1 = new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return Integer.compare(o1, o2); } }; TreeSet<Integer> treeSet1 = new TreeSet<>(comparator1); treeSet1.add(2); treeSet1.add(3); treeSet1.add(7); treeSet1.add(1); treeSet1.add(8); System.out.println(treeSet1); //[1, 2, 3, 7, 8] Comparator<Integer> comparator2 = (x, y) -> Integer.compare(x, y); TreeSet<Integer> treeSet2 = new TreeSet<>(comparator1); treeSet2.add(2); treeSet2.add(3); treeSet2.add(7); treeSet2.add(1); treeSet2.add(8); System.out.println(treeSet2); //[1, 2, 3, 7, 8] }
过滤并打印数据ide
public void test02() { List<Integer> list = new ArrayList<>(); for (int i = 0; i < 10; i++) { list.add(i); } list.stream().filter((i) -> i > 5).forEach(System.out:: println);; }
以上代码输出以下函数
6 7 8 9
limit用法code
public void test03() { List<Integer> list = new ArrayList<>(); for (int i = 0; i < 10; i++) { list.add(i); } list.stream() .filter((i) -> i > 5) .limit(2) .forEach(System.out:: println);; }
打印结果以下接口
6 7
map用法get
public void test04() { List<Integer> list = new ArrayList<>(); for (int i = 0; i < 10; i++) { list.add(i); } list.stream() .filter((i) -> i > 5) .map(Integer::floatValue) .limit(2) .forEach(System.out:: println);; }
打印结果以下it
6.0 7.0
函数式接口io
@FunctionalInterface public interface MyFunction<T> { public String getValue(T t); } public class Main { public static void main(String[] args) { //如下两种方式等价 System.out.println(toUpperCase(new MyFunction<String>() { @Override public String getValue(String t) { return t.toUpperCase(); } }, "hello world")); System.out.println(toUpperCase((t) -> t.toUpperCase(), "Hello world")); } private static String toUpperCase (MyFunction<String> myFunction, String str) { return myFunction.getValue(str); } }