predicate接口中的方法 boolean test(T t):对给定的参数进行判断,返回一个布尔值
function 接口中的方法 R applu(T t)
package Demo1; import java.util.ArrayList; public class Demo32 { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.add("林青霞"); list.add("张曼玉"); list.add("王祖贤"); list.add("柳岩"); list.add("张敏"); list.add("张无忌"); //以张开头 list.stream().filter(s -> s.startsWith("张")).forEach(System.out::println); System.out.println("-------------"); //长度为3 list.stream().filter(s -> s.length()==3).forEach(System.out::println); System.out.println("---------------"); //张,长度为3 list.stream().filter(s -> s.startsWith("张")).filter(s -> s.length()==3).forEach(System.out::println); } }
package Demo1; import java.util.ArrayList; public class Demo33 { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.add("林青霞"); list.add("张曼玉"); list.add("王祖贤"); list.add("柳岩"); list.add("张敏"); list.add("张无忌"); //需求一,取前三个数据在控制台输出 list.stream().limit(3).forEach(System.out::println); //跳过前三个元素 list.stream().skip(3).forEach(System.out::println); //跳过前2个元素,把剩下元素中国前两个在控制台上输出 list.stream().skip(2).limit(2).forEach(System.out::println); } }
package Demo1; import java.util.ArrayList; import java.util.stream.Stream; public class Demo34 { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.add("林青霞"); list.add("张曼玉"); list.add("王祖贤"); list.add("柳岩"); list.add("张敏"); list.add("张无忌"); //需求1,取前4给数据组成一个流 Stream<String> s1 = list.stream().limit(4); //跳过前两个数据组成一个流 Stream<String> s2 = list.stream().skip(2); //需求3,合并1,2得到的流,结果输出在控制台 Stream.concat(s1,s2).forEach(System.out::println); //4,合并1,2流,输出在控制台,字符串元素不能重复 Stream.concat(s1,s2).distinct().forEach(System.out::println); } }
package Demo1; import java.util.ArrayList; import java.util.stream.Stream; public class Demo34 { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.add("lingqinxia"); list.add("zhangmanyu"); list.add("wangzhuxian"); list.add("liuyan"); list.add("zhangming"); list.add("zhangwuji"); //按照字母顺序输出 // list.stream().sorted().forEach(System.out::println); //按照长度排列输出 //list.stream().sorted((s1,s2) -> s1.length() - s2.length()).forEach(System.out::println); list.stream().sorted((s1,s2) ->{ int num = s1.length()-s2.length(); int num2 = num ==0?s1.compareTo(s2):num; return num2; }).forEach(System.out::println); } }
package Demo1; import java.util.ArrayList; import java.util.stream.Stream; public class Demo34 { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.add("30"); list.add("40"); list.add("50"); list.add("7"); list.add("87"); list.add("756"); //将集合中的制度串数据转换为整数输出 //list.stream().map(Integer::parseInt).forEach(System.out::println); // list.stream().mapToInt(Integer::parseInt).forEach(System.out::println); //int sum 返回流中的总和 int result = list.stream().mapToInt(Integer::parseInt).sum(); System.out.println(result); } }
Consumer接口中的方法
void accept(T t ):对给定的参数执行此操作
package Demo1; import java.util.ArrayList; import java.util.stream.Stream; public class Demo34 { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); list.add("林青霞"); list.add("张曼玉"); list.add("王祖贤"); list.add("柳岩"); list.add("张敏"); list.add("张无忌"); //list.stream().forEach(System.out::println); long count = list.stream().filter(s -> s.startsWith("张")).count(); System.out.println(count); } }
类加载:
类的加载:
类的连接:
类的初始化:
类的初始化步骤:
注意:在执行第二个步骤的时候,系统对字节父类的初始化步骤也遵循初始化步骤1-3
类的初始化时机:
java反射机制:是指在运行时去获取一个类的变量和方法的信息,然后通过获取到的信息来创建对象,调用方法的一种机制。由于这种动态性,可以极大的增强程序的灵活性,程序不用在编译期就完成确定,在运行时仍然可以扩展