public class ForStream { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("林子东"); list.add("蔡晓武"); list.add("夏琨"); list.add("林子成"); list.add("林峰"); //对集合进行过滤,要以林开头,且长度为3,最后输出打印 //首先将集合转换为Stream流 list.stream() //filter参数是predicate接口,可以用lanmda表达式进行判断 .filter(name -> name.startsWith("林")) .filter(name -> name.length()==3) //forEach参数是consumer接口,可以消费打印 .forEach(name-> System.out.println(name)); } }
public class GetStream { public static void main(String[] args) { //list集合 List<String> list = new ArrayList<>(); Stream<String> stream1 = list.stream(); //set集合 Set<String> set = new HashSet<>(); Stream<String> stream2 = set.stream(); //map集合间接调用 Map<String,String> map = new HashMap<>(); //获取键,存储到一个set集合中 Set<String> keySet = map.keySet(); Stream<String> stream3 = keySet.stream(); //获取值,存储到Collection集合中 Collection<String> values = map.values(); Stream<String> stream4 = values.stream(); //获取键值对(键与值的映射关系) Set<Map.Entry<String, String>> entries = map.entrySet(); Stream<Map.Entry<String, String>> stream5 = entries.stream(); //把数组转换为stream流 Stream<Integer> integerStream = Stream.of(1, 2, 3, 4, 5); //可变参数可以传递数组 Integer[] arr = {1,2,3,4,5}; Stream<Integer> stream6 = Stream.of(arr); } }
public class NormalMethod { public static void main(String[] args) { Stream<String> stream = Stream.of("张三丰", "张志杰", "赵敏"); //进行过滤 Stream<String> nameList = stream.filter(name -> name.startsWith("张")); //遍历输出 nameList.forEach(name-> System.out.println(name)); } }
public class NormalMethod { public static void main(String[] args) { Stream<String> stream = Stream.of("1", "2", "3"); //进行转换 Stream<Integer> integerStream = stream.map(num -> Integer.parseInt(num)); //遍历输出 integerStream.forEach(name-> System.out.println(name)); } }
接口: @FunctionalInterface public interface printable { void print(String s); } 打印类: public class UpperMethod { public void toUp(String s){ System.out.println(s.toUpperCase()); } } 主方法: public class DemoPrintable { public static void main(String[] args) { // 先创建对象,通过对象对已存在的方法进行方法引用 UpperMethod obj = new UpperMethod(); method(obj::toUp, "ddd"); } public static void method(printable p, String s) { p.print(s); } }
method(super::greet)
接口: public interface PersonBuilder { //给个名字创建一个Person对象 Person build(String name); } Person类: public class Person { private String name; public Person() { } public Person(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } } 测试类: public class DemoBuildPerson { public static void main(String[] args) { //类的构造器引用 /*printName("迪丽热巴",(String name)->{ return new Person(name); });*/ //优化 printName("迪丽热巴",Person::new); } public static void printName(String name,PersonBuilder pb){ Person p1 = pb.build(name); System.out.println(p1.getName()); } }
method(10,int[]::new);
原文:https://www.cnblogs.com/caixiaowu/p/12915464.html