java项目总结8

1.方法引用

1.方法引用概述

注意注意:

1.引用出必须是函数式接口

2.被引用的方法必须已经存在

3.被引用方法的型参和返回值需要跟抽象方法保持一致

4.被引方法的功能要满足当前需求

Arrays.sort(arr,Main::subtraction);

Main是该类的名称,::是方法引用符

     //方法引用
        Integer[] arr={4,3,1,6,2,7,8,5};
        Arrays.sort(arr,run1::subtraction);
        System.out.println(Arrays.toString(arr));
    }
 
    public static int subtraction(int num1,int num2){
        return num2-num1;
    }
 
}

2.引用静态方法

1.方法需要已经存在
2.方法的形参和返回值需要跟抽象方法的形参和返回值保持一致

3.方法的功能需要把形参的字符串转换成整数

未利用方法引用

方法引用如下:引用方法parseInt

    ArrayList<String> list10 = new ArrayList<>();
        Collections.addAll(list10, "1","4","3","2","6");
        list10.stream()
                .map(Integer::parseInt)
                .forEach(s->System.out.println(s));

3.引用成员方法

格式:对象::成员方法

1.其他类:其他类对象::方法名

2.本类:this::方法名(引用出处不能是父类方法)

3.父类:super::方法名

1.引用其他成员方法

另一个类所定义的方法如/*线以下所示

第五行使用时候需要(对象,方法);这里的对象是在另一个类,所有需要new erer();

public class Main {
    public static void main(String[] args) {
        ArrayList<String> list1=new ArrayList<>();
        Collections.addAll(list1,"张ad","刘df","张ty","周kdh","fjd");
 
        list1.stream().filter(new erer()::stringpd)
                .forEach(s -> System.out.println(s));
    }
 }
 
/*      另一个类的方法如下
 
public class erer {
    public boolean stringpd(String s){
        return s.startsWith("张")&&s.length()==3;
    }
}
 */

2.引用本类成员方法

注意:静态方法无this(所以要用本类的对象new Main())

​
public class Main {
    public static void main(String[] args) {
        ArrayList<String> list1=new ArrayList<>();
        Collections.addAll(list1,"张ad","刘df","张ty","周kdh","fjd");
 
        list1.stream().filter(new Main()::stringpd)
                .forEach(s -> System.out.println(s));
    }
 }
 
 
public class erer {
    public boolean stringpd(String s){
        return s.startsWith("张")&&s.length()==3;
    }
}


​

3.引用父类成员方法!

拓展:(挺难的)

4.引用构造方法

稿子或者前提:

未引用构造方法:

//匿名内部类    
    List<Student> newlist1 = list1.stream().map(new Function<String, Student>() {
            @Override
            public Student apply(String s) {
                String[] arr = s.split(",");
                String name = arr[0];
                int age = Integer.parseInt(arr[1]);
                return new Student(name, age);
            }
        }).collect(Collectors.toList());
 
        //lambda
        List<Student> new2list1 = list1.stream()
                .map(s -> new Student(s.split(",")[0]
                        , Integer.parseInt(s.split(",")[1])))
                .collect(Collectors.toList());

这里要修改Student的录入方式,将(String name,int age)变为(String str)name和age在str中获得。

     //引用构造方法
        List<Student> new3list1 = list1.stream().map(Student::new).collect(Collectors.toList());
        System.out.println(new3list1);
 
 
//其中Strudent这个类里面要加上
  public Student(String str) {
        String[] arr = str.split(",");
        this.name = arr[0];
      this.age = Integer.parseInt(arr[1]);
    }

引用构造方法:

5.其他调用方式

1.使用类名引用成员方式

格式:类名::成员方法

范例:String::substring

特有规则:

所以下面才成立:

注意:第一个参数决定了我能引用那个类中的方法。如上图第一个参数是String,引用的类是String。

2.引用数组的构造方式

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

范例:int[ ]::new

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

总结:

6.实战演练

都挺难的!!!

1.转成自定义对象并收集到数组

如下:

Student[] arr的那一行中的第一个Student::new是指引用构造方法,Student[]是指引用数组的构造方法

2.获取部分属性并收集到数组

如下:

技巧:

2.异常

1.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/781667.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

学习测试1

计算机基础 1、计算机范式&#xff1a;冯诺依曼机 2、存储单元 bit、byte、KB、MB、GB3、网络 ip、域名、ping 域名、 ipconfig测试工作的流程 ------------------------------------------------------------------------------------------- 一 编写测试大纲 罗列测试…

EDA 2023 年世界国家suicide rate排名

文章目录 前言:关于数据集列 导入模块导入数据数据预处理探索性数据分析按性别划分的自杀率 [箱线图]相关矩阵热图自杀率最高的 15 个国家变化百分比最高的 15 个国家/地区2023 年世界地图上自杀率的国家 结尾: 前言: 随着社会的不断发展和变迁&#xff0c;人们对于各种社会问…

排序格式排序格式

排序格式排序格式

期末成绩老师怎么发?

期末考试的钟声终于敲响&#xff0c;学生们紧张而期待地等待着成绩的揭晓。而作为老师&#xff0c;我们面临的不仅仅是成绩的评判&#xff0c;还有一项看似简单却极其繁琐的任务——将成绩单一一私信给每位学生的家长。在成绩公布的那一刻&#xff0c;我们不仅要确保每一份成绩…

Java编程:解决实际问题的高效方法

&#x1f380;&#x1f380;引言 &#x1f44d;&#x1f44d;点关注编程梦想家&#xff08;大学生版&#xff09;-CSDN博客 不迷路❤❤ Java是一种广泛使用的编程语言&#xff0c;它不仅适用于企业级应用开发&#xff0c;还能高效解决各种实际问题。从数学问题到工程问题&…

WEB自动化框架封装MySQL连接及sql断言教程

为了在Web自动化测试中连接MySQL数据库并进行SQL断言&#xff0c;您可以按照以下步骤&#xff1a; 安装MySQL Connector/Python驱动程序&#xff0c;并导入它。 使用Connector/Python创建一个连接对象&#xff0c;指定所需的主机名、用户名、密码和数据库名。 创建一个游标对…

论文研读|AI生成图像检测发展历程及研究现状

前言&#xff1a;本篇博客系统性梳理AI生成图像检测的研究工作。 「人工智能生成图像检测」研究及发展现状介绍 参考资料 https://fdmas.github.io/AIGCDetect/针对AIGC检测的鲁棒性测试——常见攻击手段汇总论文研读&#xff5c;以真实图像为参考依据的AIGC检测论文研读&…

【TB作品】51单片机 Proteus仿真 基于单片机的LCD12864万年历及温度监测系统设计

实验报告&#xff1a;基于单片机的LCD12864万年历及温度监测系统设计 背景介绍 本实验旨在设计并实现一个基于STC89C52单片机的LCD12864显示的万年历系统&#xff0c;同时集成温度传感器以实现温度监测功能。系统具备整点报时和闹钟功能&#xff0c;通过蜂鸣器进行提示。该设…

【2024_CUMCM】时间序列算法ARMA

目录 2023-c-问题二 问题分析 介绍 单位根检验 白噪声检验 自相关和偏自相关图 利用信息准则定阶 构建AMIMA模型 D-W检验 预测 代码 2023-c-问题二 问题分析 ARMA适合多个领域的时间序列分析&#xff0c;不同时间的定价策略属于这类问题。 介绍 ARMA模型&…

PingCAP 成为全球数据库管理系统市场增速最快的厂商

近日&#xff0c;Gartner 发布的《Market Share Analysis: Database Management Systems, Worldwide, 2023》&#xff08;2024 年 6 月&#xff09;报告显示&#xff1a;“2023 年全球数据库管理系统&#xff08;DBMS&#xff09;市场的增长率为 13.4%&#xff0c;略低于去年的…

我国网络安全领域有哪些法律法规?主要内容是什么?

1. 背景介绍 网络信息安全方面的法规在全球范围内都有相应的立法&#xff0c;我们主要的立法有《网络安全法》、《密码法》、《数据安全法》以及《个人信息保护法》。当前也有一些相关的条例和管理办法&#xff0c;接下来就为大家一一介绍。 2. 法规介绍 在中国&#xff0c;…

博客搭建-图床篇

我们的博客难免少不了图片&#xff0c;图片管理是一个不小的难题。如果我们将图片全部放到我们自己的服务器上&#xff0c;那么带宽就基本上会被图片所占满了&#xff0c;这会导致网站加载很慢&#xff08;特别是图片加载很慢&#xff09;。 ‍ 什么是图床 为了解决图片的问…

Python28-7.5 降维算法之t-分布邻域嵌入t-SNE

t-分布邻域嵌入&#xff08;t-distributed Stochastic Neighbor Embedding&#xff0c;t-SNE&#xff09;是一种用于数据降维和可视化的机器学习算法&#xff0c;尤其适用于高维数据的降维。t-SNE通过将高维数据嵌入到低维空间&#xff08;通常是二维或三维&#xff09;中&…

大数据之路 读书笔记 Day4 数据同步

回顾&#xff1a; Day 3 总结了无限客户端的日志采集 大数据之路 读书笔记 Day 3Day 2总结了浏览器端的日志采集 大数据之路 读书笔记 Day 2 数据同步 阿里数据体系中的数据同步&#xff0c;主要指的是在不同的数据存储系统之间进行数据的传输与更新&#xff0c;以保证数据的一…

人工智能系列-Python面向对象编程

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 面向对象编程和面向过程编程 在使用计算机语言进行代码编写时&#xff0c;常见的两种思路是面向对象编程和面向过程编程。 面向过程&#xff1a;根据业务逻辑从上到下写代码。…

GDP播放器 驱动视频播放器 PHP 系统源码 v4.4.3

最重要的是我们自己开发了源代码&#xff0c;因此无论您在使用此工具时遇到什么问题&#xff0c;我们都会快速解决。这个版本演示 分别支持PHP7.4/8.1/8.2三个版本 演示地址

大华DSS user_toLoginPage.action命令执行漏洞

免责声明 本文章仅做网络安全技术研究使用&#xff01;严禁用于非法犯罪行为&#xff0c;请严格遵守国家法律法规&#xff1b;请勿利用文章内的相关技术从事非法测试&#xff0c;如因此产生的一切不良后果与文章作者无关。使用本文所提供的信息或工具即视为同意本免责声明&…

华为云简介

前言 华为云是华为的云服务品牌&#xff0c;将华为30多年在ICT领域的技术积累和产品解决方案开放给客户&#xff0c;致力于提供稳定可靠、安全可信、可持续创新的云服务&#xff0c;赋能应用、使能数据、做智能世界的“黑土地”&#xff0c;推进实现“用得起、用得好、用得放心…

µCOS-III 任务同步机制-任务信号量

1. 什么是任务信号量 任务信号量是一种用于任务间同步和通信的计数器&#xff0c;通常用于解决任务间的竞争条件和资源共享问题。在C/OS-III中&#xff0c;任务信号量提供了二进制信号量和计数信号量两种类型&#xff1a; 二进制信号量&#xff1a;只能取值0或1&#xff0c;适…

昇思12天

FCN图像语义分割 1. 主题和背景 FCN是由UC Berkeley的Jonathan Long等人于2015年提出的&#xff0c;用于实现图像的像素级预测。 2. 语义分割的定义和重要性 语义分割是图像处理和机器视觉中的关键技术&#xff0c;旨在对图像中的每个像素进行分类。它在很多领域有重要应用…