首页 > 其他分享 >方法引用(二)

方法引用(二)

时间:2023-08-21 21:32:01浏览次数:29  
标签:java list util 引用 new import 方法 public

1、使用类名引用成员方法

格式:类名::成员方法 例如:Student::show

1.1、练习:集合里面的一些字符串,要求变成大写后输出。

import java.util.ArrayList;
import java.util.Collections;
import java.util.function.Function;

public class Test {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        Collections.addAll(list, "aa", "bb", "cc", "dd");

        list.stream().map(new Function<String, String>() {
            @Override
            public String apply(String s) {
                return s.toUpperCase();     //返回大写形式
            }
        }).forEach(n -> System.out.println(n));
        System.out.println("-----------------------------------");

        //改成方法引用
        list.stream().map(String::toUpperCase).forEach(n -> System.out.println(n));

    }

}

使用这种方式的抽象方法参数详解:

①、第一个参数:表示被引用方法的调用者,决定了可以引用哪些类中的方法,在Stream流中,第一个参数一般表示流里面的每一个数据,假设流里面的数据是字符串,那么使用这种方式进行方法引用,只能引用String这个类中的方法。

②、第二个参数到最后一个参数:跟被引用方法的形参保持一致,如果没有第二个参数,说明被引用的方法需要是无参的成员方法。

2、引用数组的构造方法

格式:数据类型[]::new

细节:数组的类型需要跟流中的数据类型一致

练习:集合中存储一些整数,收集到数组中

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.function.Function;
import java.util.function.IntFunction;

public class Test {
    public static void main(String[] args) {
        test02();

    }

    public static void test02() {
        ArrayList<Integer> list = new ArrayList<>();
        Collections.addAll(list, 1, 2, 3, 4, 5);

        Integer[] arr1 = list.stream().toArray(new IntFunction<Integer[]>() {
            @Override
            public Integer[] apply(int value) {
                return new Integer[value];
            }
        });
        System.out.println(Arrays.toString(arr1));
        System.out.println("-----------------------------------");

        //改成引用数组的构造方法
        Integer[] arr2 = list.stream().toArray(Integer[]::new);
        System.out.println(Arrays.toString(arr2));

    }

}

标签:java,list,util,引用,new,import,方法,public
From: https://blog.51cto.com/u_15433911/7180092

相关文章

  • java中多线程使用方法
    线程互相独立可以同时运行一个线程不能多次启用并发和并行并发强调交替并行强调同时多线程实现方式继承Thread重写run方法下不能直接调用方法要调用start方法setname给线程命名getname获取线程名字实现Runnable接口先继承Runnable在创建Thread对象参......
  • 为什么使用HashMap的键存的是自定义的键时需要重写hashcode和equals方法?
    当hashMap的键存的是自定义的键时需要重写对象的hashcode和equals方法存入的是对象时,应该hashMapd的键不能存储的值不能相同,如果重写方法的hashcode()方法,他会默认调用object类的hashcode方法,但是object的hashcode方法时地址值计算出来的hash值,并不是内容,这个时候就需要重......
  • JavaScript基础之基于数据类型和引用数据类型
    数据类型JavaScript的数据类型有7中,包括6个基本类型和一个引用类型基本数据类型:number,string,boolean,null,undefined,symbol引用数据类型:object(数组、对象、函数、正则等)基本数据类型和引用数据类型的区别存储方式基本类型:基本数据类型的值直接存储在改变量所分配的内存......
  • this.$set的使用方法
    //对象的属性sex的值更新为"男"letobj={name:"六四",age:18,sex:"女"}this.$set(obj,"sex","男")//第一个参数是对象,第二个参数是更新的属性名称,第三个参数是新的内容//更新之后的obj是{name:"六四",age:18,sex:"男"}letarr=["星期一&qu......
  • 数组的方法reduce
    selectTotalPrice(){ lettotalPrice=this.goods.reduce((prev,cur)=>{ constcurPrice=cur.goods.sku?.price||cur.goods.price; returnparseFloat(prev)+parseFloat((cur.is_select&&curPrice)||0)*cur.num; },0); return......
  • SpringBoot复习:(55)在service类中的方法上加上@Transactional注解后,Spring底层是怎么生
    SpringBootrun方法代码如下:可以看到它会调用refreshContext方法来刷新Spring容器,这个refreshContext方法最终会调用AbstractApplicationContext的refresh方法,代码如下如上图,refresh方法最终会调用finisheBeanFactoryInitialization方法,代码如下:从上图可以看出,它最终会调用preIn......
  • SpringBoot复习:(42)WebServerCustomizer的customize方法是在哪里被调用的?
    ServletWebServletAutoConfiguration类定义如下:可以看到其中通过@Import注解导入了其内部类BeanPostProcessorRegister。BeanPostProcessor中定义的registerBeanDefinition方法会被Spring容器调用。registerBeanDefinitions方法调用了RegistrySyntheticBeanIfMissing方法,这个方......
  • 在Windows系统上运行.sh文件的一些方法
    在Windows系统上,默认情况下是无法直接运行.sh文件的,因为.sh文件是Unix/Linux系统上的Shell脚本文件。但是,你可以使用一些工具或方法来在Windows系统上运行.sh文件:1.使用Cygwin:Cygwin是一个在Windows上提供类似Unix环境的开源工具。通过安装Cygwin,你可以在Windows上运行.sh文件。......
  • python判断字符串是否包含子串的五种方法
    python判断字符串是否包含子串的五种方法一、用find()方法判断要判断某一个字符串是否包含某一个子串,方法之一是可以利用python内置的字符串方法find()来查找,如果查找到,就返回子串第一个字符在原字符串中的索引位置,如果找不到,则返回-1,实例代码如下:>>>string='笨鸟工具,x1y1z1......
  • 计算潜在蒸散量PET的方法
    目标是想计算相对湿润度指数MI 得先计算PET:PET的方法可以采用Thornthwaite方法和FAOPenman-Monteith方法,但是彭曼公式涉及到辐射,需要辐射数据比较麻烦,所以采用Thornthwaite方法 原始数据: 处理后的数据:代码如下:#!usr/bin/envpython#-*-coding:utf-8-*-"""@au......