lambda表达式:
这里主要记录一下lambda表达式中“::”的使用方法:
//表达式
person -> person.getAge();
//可以替换成
Person::getAge
() -> new HashMap<>();
//可以替换成
HashMap::new
“::”【双冒号运算】对应的参数类型是Function<T,R> ,T表示传入的参数,R表示返回的类型。对比以上例子中person就是传入的参数,person.getAge()是返回值,因此对应 Person::getAge就相当于Function<Person,Integer>。
这里给出一个具体的例子:我们将List<String>中的String全部转成成大写字符。
//->用法
public void convertTest() {
List<String> collected = new ArrayList<>();
collected.add("alpha");
collected.add("beta");
collected = collected.stream().map(string -> string.toUpperCase());
System.out.println(collected);
//::用法
public void convertTest() {
List<String> collected = new ArrayList<>();
collected.add("alpha");
collected.add("beta");
collected = collected.stream().map(String::toUpperCase);//注意发生的变化
System.out.println(collected);
}