首页 > 其他分享 >方法引用之其他使用

方法引用之其他使用

时间:2022-12-10 11:35:03浏览次数:24  
标签:String System 引用 使用 println Integer 方法 out

package com.Lucky.Function;

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

/*
  使用类名引用成员方法       Integer::parseInt
  使用数组的构造方法         Integer[]::new
 */
//要求:将集合的字符串字母大写再输出
public class otherFunction {

    public static void main(String[] args) {
        String str="wdfgnbvcwsdfgh";
        ArrayList<String> list=new ArrayList<>();
        Collections.addAll(list,"sdwe","dfger","wertygh");

        System.out.println("--匿名内部类写法----");
        list.stream().map(new Function<String, String>() {
            @Override
            public String apply(String s) {
                String s1 = s.toUpperCase();
                return s1;
            }
        }).forEach(s -> System.out.println(s));

        System.out.println("--lamda写法----");
        list.stream().map( s->s.toUpperCase()).forEach(s -> System.out.println(s));


        System.out.println("--①类名引用成员方法:要根据独有的条件使用----");
        /*
          public String toUpperCase() {
             return toUpperCase(Locale.getDefault());
          }
          疑问点:上面String类的toUpperCase源码,可是为什么明跟抽象方法的形参不一样还可以使用方法引用呢?????

           方法引用:
         使用条件:1.引用地方要是函数式接口:@FunctionalInterface
                 2.被引用的方法必须存在
                 3.被引用的方法的形参以及返回值要跟抽象方法的保持一致【区别在这】
                 {****
                   被引用的方法的形参,需要跟抽象方法的第二个形参开始要保持一致,
                   如果抽象方法中没有第二个形参,那么被引用方法需要的是无参的成员方法
                 }****
                 4.被引用的方法要满足当前抽象方法的需求
         */
        list.stream().map(String::toUpperCase).forEach(s -> System.out.println(s));




////////////////////////////////////////////////////////////////////////
        System.out.println();
        System.out.println("------------------使用数组的构造方法: 数组的类型要跟流中类型要一致---------------------------");
       //要求:将集合的数据收集到数组中
        ArrayList<Integer> intList=new ArrayList<>();
        Collections.addAll(intList,1,2,3,4,5,6,7,8,9);



        System.out.println("--- //原始写法:----");
        Integer[] ints = intList.stream().toArray(new IntFunction<Integer[]>() {
            @Override
            public Integer[] apply(int value) {
                return new Integer[value];
            }
        });

        for (Integer anInt : ints) {
            System.out.print(anInt+"\t");
        }
        System.out.println();

        System.out.println("--- //方法引用【数组】写法:----");
        Integer[] integers = intList.stream().toArray(Integer[]::new);

        for (Integer an : integers) {
            System.out.print(an+"\t");
        }

    }
}

  

标签:String,System,引用,使用,println,Integer,方法,out
From: https://www.cnblogs.com/Lucky-only/p/16971295.html

相关文章

  • 频率使用
    频率目录频率1、内置的频率限制未登录用户访问频次登录用户访问频次可以对接口访问的频次进行限制,以减轻服务器压力一般用于付费购买次数,投票等场景使用1、内置的频率......
  • 过滤组件的使用
    过滤Filtering对于列表数据可能需要根据字段进行过滤,我们可以通过添加django-filter扩展来增强支持pipinstalldjango-filter在配置文件中添加过滤后端的设置INSTALL......
  • 排序组件的使用
    排序在类视图中设置filter_backends属性,使用rest_framework.filters.OrderingFilter过滤器,DRF会在请求的查询字符串参数中检查是否包含了ordering参数,如果包含了ordering......
  • 方法引用基础使用
    packagecom.Lucky.Function;importjava.util.Arrays;importjava.util.Comparator;importjava.util.stream.Collector;/*方法引用:将已经存在的方法进行引用......
  • 方法引用之【静态方法引用】
    packagecom.Lucky.Function;importjava.util.ArrayList;importjava.util.Arrays;importjava.util.Collections;importjava.util.Comparator;importjava.util.......
  • # yyds干货盘点 # 如果想要删除四列中都有相同项的数据,有什么方便的方法吗?
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【Wendy Zheng】问了一个重复值删除的问题,这里拿出来给大家分享下。二、实现过程针对这个问题,【郑煜哲·Xiaopang......
  • Python中列出目录中的文件的五种方法
    1.引言文件和目录相关操作是软件工程师必备的基本技能。我不是说将一个文件复制到Windows文件资源管理器上的另一个文件夹中。我是说使用代码来进行自动化批量处理操作。......
  • Velero 系列文章(二):使用 Helm 安装 Velero
    概述本文是通过Helm3来安装Velero,只做最基本的安装。并计划将YAML(只备份YAML,不备份Volume)备份到腾讯云的COS(兼容S3,所以可以通过AWSS3插件来实现)需要......
  • PostgreSQL 使用数组类型及mybatis操作数组类型
    为啥要用到数组类型呢?因为​​ES支持数组类型​​,为了迁移遍历,所以也支持数组类型。selectdocid,authorsfromsearch_doc_new_icwhereauthors@>'{"惠普"}'limit1......
  • Stream流之其他使用
    数组:packagecom.Lucky;importjava.util.*;/*数组的Stream流:使用Arrays工具类*/publicclassStreamArray{publicstaticvoidmain(String[]args)......