Java#27(Arrays)

news2025/2/28 12:41:25

目录

一.Arrays

操作数组的工具类

二.Lambda表达式

1.注意:

2.省略规则


一.Arrays

操作数组的工具类

                                方法名                                                               作用
public static String toString(数组)                                       把数组拼接成一个字符串
public static int binarySearch(数组,查找的元素)                 二分查找法查找元素
public static int[ ] copyof(原数组,新数组长度)                                拷贝数组
public static int[ ] copyofRange(原数组,起始索引,结束索引)   拷贝数组(指定范围)
public static void fill(数组,元素)                                                        填充数组
public static void sort(数组)                                                按照默认方式进行数组排序
public static void sort(数组,排序规则)                                    按照指定的规则排序

代码示范: 

package ArrayDemo;

import java.util.Arrays;

public class ArrayDemo1 {
    public static void main(String[] args) {
        //1.Arrays.toString
        int[] arr = {1,2,3,4,5,6,7,8,9,10};
        System.out.println(Arrays.toString(arr));
        
        //2.Arrays.binarySearch的使用,数组必须是有序的
        System.out.println(Arrays.binarySearch(arr, 5));
        
        //3.Arrays.copyOf拷贝时,新数组的长度大于就数组,多出的部分会默认添加初始值
        //新数组小于旧数组的话就会是部分拷贝
        int[] arr1 = Arrays.copyOf(arr,11);
        System.out.println(Arrays.toString(arr1));
        
        //4.Arrays.copyOfRange拷贝时,包左不包右,索引6对应的是数据7
        int[] arr2 = Arrays.copyOfRange(arr,2,6);
        System.out.println(Arrays.toString(arr2));
        
        //5.Arrays.fill
        int[] arr3 = new int[10];
        Arrays.fill(arr3,5);
        System.out.println(Arrays.toString(arr3));
        
        //6.Arrays.sort,使用时默认是快速排序,升序
        int[] arr4 = {1,4,67,3,2,5,7};
        Arrays.sort(arr4);
        System.out.println(Arrays.toString(arr4));
    }
}

结果展示:

 public static void sort(数组,排序规则)

底层原理:
利用插入排序 + 二分查找的方式进行排序的
默认把0索引的数据当做是有序的序列,1索引到最后认为是无序的序列

遍历无序的序列得到里面的每一个元素,假设当前遍历得到的元素是A元素

把A往有序序列中进行插入,在插入的时候,是利用二分查找确定A元素的插入点

拿着A元素,跟插入点的元素进行比较,比较的规则就是compare方法的方法体

如果方法的返回值是负数,拿着A继续跟前面的数据进行比较

如果方法的返回值是正数,拿着A继续跟后面的数据进行比较

如果方法的返回值是9,也拿着A跟后面的数据进行比较

直到能确定A的最终位置为止

compare方法的形式参数:
参数一 o1:表示在无序序列中,遍历得到的每一个元素

参数二 o2:有序序列中的元素
返回值:
负数: 表示当前要插入的元素是小的,放在前面

正数:表示当前要插入的元素是大的,放在后面

0: 表示当前要插入的元素跟现在的元素比是一样的们也会放在后面

简单理解:

o1 - o2: 升序排序

o2 - o1: 降序排序 

二.Lambda表达式

1.注意:

(1)Lambda表达式可以用来简化匿名内部类的书写

(2)Lambda表达式只能简化函数式接口的匿名内部类的写法

(3)函数式接口:有且仅有一个抽象方法的接口叫做函数式接口,接口上可以加@FunctionalInterface注解

2.省略规则

(1)参数类型可以不写

(2)只有一个参数,参数类型可以省略,同时( )也可以省略

(3)如果Lambda表达式的方法体只有一行,大括号,分号,return可以省略不写,但需要同时省略

代码示范:

package Demo;

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

               //匿名内部类
        //之前的写法
        method(new swim() {
            @Override
            public void swimming() {
                System.out.println("正在游泳1");
            }
        });
        //Lambda的写法
        method(()-> {
            System.out.println("正在游泳2");
            }
        );
    }
    public static void method(swim s){
        s.swimming();
    }
}

//函数式接口
interface swim{
    public abstract void swimming();

}

结果展示:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据毕设选题 - 深度学习动物识别与检测系统( python opencv)

文章目录0 前言1 深度学习实现动物识别与检测2 卷积神经网络2.1卷积层2.2 池化层2.3 激活函数2.4 全连接层2.5 使用tensorflow中keras模块实现卷积神经网络3 YOLOV53.1 网络架构图3.2 输入端3.3 基准网络3.4 Neck网络3.5 Head输出层4 数据集准备4.1 数据标注简介4.2 数据保存5 …

kafka集群搭建与prometheus监控配置

文章目录1、基于zookeeper的集群2、kafka集群安装2.1 基于Zookeeper集群的配置2.2 基于KRaft模式集群的配置2.3、启动Kafka集群3、kafka_exporter监控组件安装3.1、安装3.2、系统服务3.3、集成到prometheus4、与Grafana集成1、基于zookeeper的集群 下载地址:https:…

ABAP学习笔记之——第三章:OPEN SQL和NATIVE SQL

一、SAP R/3体系结构 SAP R/3一个分为三层:数据库层、应用层、表示层。其中应用层和数据库层由一个系统构成。 表示层:表示层(Presentation Layer)简单来讲其实就是指个人PC,是保存构成SAPGUI(GraphicalUserInterface)的软件组件(Software Co…

数字验证学习笔记——SystemVerilog芯片验证10 ——类的成员

一、类和成员 类是成员变量和成员方法的载体,之所以称为自洽体,是因为其变量和方法应符合‘聚拢’原则,即一个类的功能应该尽可能简单,不应承担过多的职责,更不应该承担不符合它的职责,这在设计模式被称为…

变分自编码器(VAES)

Dimensionality reduction ,PCA and autoencoders Dimensionality reduction 我们清楚,数据降维其实都是减少数据的特征数量,如果把encoderencoderencoder看作是由高维原有特征生成低维新特征的过程。把decoderdecoderdecoder看作是将低维特征还原为高…

vulnhub靶机ha:wordy

靶机下载链接:HA: Wordy ~ VulnHub 靶机ip:192.168.174.136(后面重启后变成192.168.174.137) kali ip:192.168.174.128 目录 靶机ip发现: 靶机端口扫描: 子目录扫描: wpscan扫描 漏洞利用1 漏洞利…

ASEMI肖特基二极管MBR40200PT参数,MBR40200PT规格

编辑-Z ASEMI肖特基二极管MBR40200PT参数: 型号:MBR40200PT 最大重复峰值反向电压(VRRM):200V 最大平均正向整流输出电流(IF):40A 峰值正向浪涌电流(IFSM&#xff0…

5、Mybatis的查询功能(必定有返回值)

Mybatis的查询功能(必定有返回值) 注意: 查询功能与前面的增删改不同,增删改的返回值是固定的(所以增删改我们就有两种返回值要么设置为int获取受影响的行数,要么设置为void我们不获取返回值)…

基于JAVA的农产品生鲜销售管理系统【数据库设计、源码、开题报告】

数据库脚本下载地址: https://download.csdn.net/download/itrjxxs_com/86468222 主要使用技术 Struts2HibernateJSPJSCSSMysql 功能介绍 1,游客访问 |–系统首页,查看商品列表 |–特价商品 |–最新上架 2,会员访问 |–用户登…

Qt 界面设置无边框之后如何实现缩放界面

在qt中,如果设置的了窗口无边框的话(即setWindowFlag(Qt::FramelessWindowHint);)那么窗口就没法直接被鼠标拖动了,也没法按住窗口的边界进行缩放。 如果要实现缩放和拖动,一般来说就需要的重写窗口类的mousePressEve…

目标检测论文解读复现之十九:基于YOLOv5网络模型的人员口罩佩戴实时检测

前言 此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文&#xff0…

8.3 数据结构——交换排序

基本思想:两两比较,如果发生逆序则交换,直到所有记录都排好序为止。 常见的交换排序:(1)冒泡排序 (2)快速排序 8.3.1 冒泡排序 基本思想:每趟不断将记录两两比较&…

VLAN(Virtual LAN)虚拟局域网

1、广播与广播域 广播:将广播地址做为目标地址的数据帧 广播域:网络中能接收到同一个广播所有节点的集合(广播域越小越好,收到的垃圾广播越少,这样通信效率更高) MAC地址广播 广播地址为:FF-FF-…

rabbitmq配置windows authentication(windows account)登录

rabbitmq配置windows authentication(windows account开启插件配置文件创建一个不需要密码的账号,赋予administrator权限。用windows账号和密码登录rabbitmq加密明文密码创建密钥的文件,添加密钥字符串加密解密用户名密码配置加密后的字符串重启rabbitmq&#xff0c…

HyperLynx(三十一)高速串行总线仿真(三)

高速串行总线仿真(三) 1.从一个多层板工程中验证串行通道 2.在多层板中设置连接器模型 1.从一个多层板工程中验证串行通道 在本例练习中,将集中研究从芯片到插件形成的串行发射通道,并分析它的性能。 (1)打开 HyperLynx 软件&a…

Centos下安装postgreSQL

最近北京yq严重,在家学习下postgreSQL ,本次使用的是 Centos 环境安装是有,记录下来,方便备查。 第一步、下载与安装 下载地址:postgreSQL官网 在官网上选择 Linux系统,使用 yum来下载软件,只…

SpringBoot SpringBoot 原理篇 1 自动配置 1.11 bean 的加载控制【编程式】

SpringBoot 【黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)】 SpringBoot 原理篇 文章目录SpringBootSpringBoot 原理篇1 自动配置1.11 bean 的加载控制【编程式】1.11.1 bean 的加载控制1.11.2 环境…

[附源码]Python计算机毕业设计高校辅导员工作管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

现代密码学导论-15-多明文加密

目录 3.4更强的安全观念 3.4.1 多明文加密安全 多消息窃听实验 DEFINITION 3.18 多明文加密下的不可区分性 PROPOSITION 3.19 定义3.18强于定义3.8的事实证明 PROPOSITION 3.19 的证明 概率加密的必要性 THEOREM 3.20 3.4更强的安全观念 到目前为止,我们一…

MySQL 慢查询日志 使用方法浅析 日志定位与优化技巧

目录 前言 1、如何开启使用慢查询日志? 1.1 开启慢查询日志 1.2 设置慢查询阈值 1.3 确定慢查询日志的文件名和路径 1.3.1 查询MySQL数据目录 1.3.2 查询慢查询日志文件名 1.3.3 查询全局设置变量 1.3.4 查询单个变量命令 1.3.5 其他注意事项 2、如何定位并优…