Java学习笔记(七)——操作数组工具类Arrays

news2025/2/22 16:34:02

文章目录

    • Arrays
      • Arrays.toString()
      • Arrays.binarySearch()
      • Arrays.copyOf()
      • Arrays.copyOfRange()
      • Arrays.fill()
      • Arrays.sort()
        • 升序排序
        • 降序排序

Arrays

操作数组的工具类。

在这里插入图片描述

Arrays.toString()

import java.util.Arrays;

public class test40 {
    public static void main(String[] args) {
        int[] ints = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        String str = Arrays.toString(ints);
        System.out.println(str);  //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    }
}

在这里插入图片描述

Arrays.binarySearch()

import java.util.Arrays;

public class test40 {
    public static void main(String[] args) {
        int[] ints = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        int index = Arrays.binarySearch(ints, 10);
        System.out.println(index);
    }
}

在这里插入图片描述

在这里插入图片描述

Arrays.copyOf()

如果新数组的长度小于原始数组的长度——部分拷贝

如果新数组的长度等于原始数组的长度——完全拷贝

如果新数组的长度大于原始数组的长度——完全拷贝+补上默认初始化值0

import java.util.Arrays;

public class test40 {
    public static void main(String[] args) {
        int[] ints = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        int[] ints1 = Arrays.copyOf(ints, 5);
        System.out.println(Arrays.toString(ints1));  //[1, 2, 3, 4, 5]
    }
}

在这里插入图片描述

Arrays.copyOfRange()

范围:包头不包尾

import java.util.Arrays;

public class test40 {
    public static void main(String[] args) {
        int[] ints = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        int[] ints1 = Arrays.copyOfRange(ints, 3, 5);
        System.out.println(Arrays.toString(ints1));  //[4, 5]
    }
}

在这里插入图片描述

Arrays.fill()

import java.util.Arrays;

public class test40 {
    public static void main(String[] args) {
        int[] ints=new int[10];
        Arrays.fill(ints,0);
        System.out.println(Arrays.toString(ints));  //[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    }
}

在这里插入图片描述

Arrays.sort()

默认使用升序排序。

底层使用的是快速排序。

import java.util.Arrays;

public class test40 {
    public static void main(String[] args) {
        int[] ints = {5, 4, 8, 2, 4, 7, 6, 3, 0, 1, 9, 10};
        Arrays.sort(ints);
        System.out.println(Arrays.toString(ints));  //[0, 1, 2, 3, 4, 4, 5, 6, 7, 8, 9, 10]
    }
}

在这里插入图片描述

要想改变排序顺序:

在这里插入图片描述

第二个参数是一个接口,在调用方法的时候,要传递这个接口的实现类对象,作为排序的规则。

底层原理:插入排序+二分查找

默认把0索引的数据当作是有序的序列,1索引到最后是无序的序列。

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

利用二分查找确定A的插入点,拿着A跟插入点的元素进行比较,

比较的规则是Comparator<>(),

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

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

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

直到确定A的最终位置。

compare(Integer o1, Integer o2):

o1:表示在无序序列中,遍历得到的每一个元素

o2:有序序列中的元素

返回值:

负数:表示当前要插入的元素小,放在前面

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

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

升序排序
import java.util.Arrays;
import java.util.Comparator;

public class test40 {
    public static void main(String[] args) {
        Integer[] integers = {5, 4, 8, 2, 4, 7, 6, 3, 0, 1, 9, 10};
        Arrays.sort(integers, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o1-o2;
            }
        });
        System.out.println(Arrays.toString(integers));  //[0, 1, 2, 3, 4, 4, 5, 6, 7, 8, 9, 10]
    }
}
降序排序
import java.util.Arrays;
import java.util.Comparator;

public class test40 {
    public static void main(String[] args) {
        Integer[] integers = {5, 4, 8, 2, 4, 7, 6, 3, 0, 1, 9, 10};
        Arrays.sort(integers, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2-o1;
            }
        });
        System.out.println(Arrays.toString(integers));  //[10, 9, 8, 7, 6, 5, 4, 4, 3, 2, 1, 0]
    }
}

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

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

相关文章

SAP S/4HANA 2023 Fully-Activated Appliance 虚拟机版介绍

注&#xff1a;市面上所有在售虚拟机均为拷贝本人所作的虚拟机&#xff0c;存在各种技术问题&#xff0c;请知悉。 SAP S4HANA 2023 FAA版本内置了四个Client&#xff1a; 1、000&#xff1a;SAP初始Client&#xff0c;原则上不能动&#xff1b; 2、100&#xff1a;只激活了US…

自己是如何使用单元测试

前言 自己是如何使用单元测试 进行单元测试能够让我们在编写方法的具体实现代码后&#xff0c;能清晰地看到其是否能实现预期的功能&#xff0c;有助于我们及时修正自己方法中存在的bug&#xff0c;以免在后续使用到某方法时出现意想不到的错误。 一、引入单元测试所使用的依赖…

MySQL基础笔记(9)事务

一.简介 所谓事务&#xff0c;是一组操作的集合&#xff0c;它是一个不可分割的工作单位&#xff0c;事务会把所有的操作作为一个整体一起向系统提交或者撤销操作请求&#xff0c;即&#xff0c;这些操作要么同时成功&#xff0c;或者同时失败——OS中有原语不可分割的概念&…

网工每日一练(1月18日)

1.在下面关于VLAN的描述中&#xff0c;不正确的是 &#xff08; C &#xff09; 。 A、VLAN把交换机划分成多个逻辑上独立的交换机 B、主干链路&#xff08;Trunk&#xff09;可以提供多个VLAN之间通信的公共通道 C、由于包含了多个交换机&#xff0c;所以VLAN扩大了冲突域 D、…

高速CAN总线 C 或 B 节点发送 A节点接收 电压分析

CAN收发器放大图 CAN总线3节点框图&#xff0c;如下图 图① CAN总线 C 节点发送&#xff0c;B 节点接收简化后的逻辑框图如下图。 总线上 A B C 三个节点&#xff0c;按照CAN总线规定&#xff0c;首尾 A B 两个节点处需要接入1个120Ω的终端电阻&#xff0c;如下图&#xff1a…

Pyro —— Velocity Voxel Scale

Velocity Voxel Scale是H19.5引入的新参数&#xff0c;该参数可单独定义volume和速度体素&#xff1b;根据参数设置&#xff0c;可观察到模拟时间的显著变化&#xff1b; Velocity Voxel Scale对DOP和SOP均可用&#xff1b;对DOP设置&#xff0c;该参数在Smoke Object&#xf…

django admin后台中进行多个手机号解密消耗时间对比

需求&#xff1a; 1 手机号在数据库中是使用rsa方式加密存储&#xff0c;后台查看中需要转换为明文&#xff0c;因为需要解密多个手机号&#xff0c;所以在后台查看中消耗时间3秒&#xff0c;希望通过多线程&#xff0c;多进程&#xff0c;异步方式来缩短时间 相关注意点&…

JVM内存模型剖析

JDK体系结构 JDK&#xff1a;JDK提供了编译、运行Java程序所需的各种资源和工具&#xff1b;包括Java编译器&#xff0c;Java运行时环境&#xff1a;JRE&#xff1b;开发工具包括编译工具(javac.exe)打包工具(jar.exe)等。 JRE&#xff1a; 即JAVA运行时环境&#xff0c;JVM就…

小程序样例2:简单图片分类查看

基本功能&#xff1a; 1、根据分类展示图片&#xff0c;点击类目切换图片&#xff1a; 2、点击分类编辑&#xff0c;编辑分类显示&#xff1a; 3、点击某个分类&#xff0c;控制主页该分类显示和不显示&#xff1a; 类目2置灰后&#xff0c;主页不再显示 4、点击分类跳转到具…

大数据开发之kafka(完整版)

第 1 章&#xff1a;Kafka概述 1.1 定义 Kafka是一个分布式的基于发布/订阅模式的消息队列&#xff0c;主要应用于大数据实时处理领域。 发布/订阅&#xff1a;消息的发布者不会将消息直接发送给特定的订阅者&#xff0c;而是将发布的消息分为不同的类别&#xff0c;订阅者只…

Linux系统安装Samba服务器

在实际开发中&#xff0c;我们经常会有跨系统之间文件传递的需求&#xff0c;Samba 便是能够在 Windows 和 Linux 之间传递文件的服务&#xff0c;功能也是非常强大和好用&#xff0c;本篇文章将介绍如何在 Linux 系统上安装 Samba 服务&#xff0c;以 CentOS7 系统为例。 一、…

Java强软弱虚四大引用

文章目录 一、强引用二、软引用三、弱引用四、虚引用 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、强引用 在Java中&#xff0c;强引用&#xff08;Strong Reference&#xff09;是最常见的引用类型。当我们创建一个对象并将其赋值给一个变量时…

Spring Boot整合Spring Security:构建安全的Web应用

文章目录 1. 添加依赖2. 配置Spring Security3. 创建用户服务4. 控制器和视图5. 运行应用 Spring Security是一个强大的身份验证和访问控制框架&#xff0c;用于保护Spring应用程序。它提供了全面的安全服务&#xff0c;包括身份验证、授权、攻击防护等。本文将介绍如何在Spr…

让uniapp小程序支持多色图标icon:iconfont-tools-cli

前景&#xff1a; uniapp开发小程序项目时&#xff0c;对于iconfont多色图标无法直接支持&#xff1b;若将多色icon下载引入项目则必须关注包体&#xff0c;若将图标放在oss或者哪里管理&#xff0c;加载又是一个问题&#xff0c;因此大多采用iconfont-tools工具&#xff0c;但…

原码,补码的除法

目录 一.原码的除法 &#xff08;1&#xff09;恢复余数法 重点看这 &#xff08;2&#xff09;不恢复余数法&#xff08;加减交替法&#xff09; 重点看这 二. 补码除法运算 重点看这 我们已经学习了如何进行原码&#xff0c;补码的乘法&#xff1a; http://t.csdnimg…

【代码整理】基于COCO格式的pytorch Dataset类实现

import模块 import numpy as np import torch from functools import partial from PIL import Image from torch.utils.data.dataset import Dataset from torch.utils.data import DataLoader import random import albumentations as A from pycocotools.coco import COCO …

Spring MVC精解:技术内幕与最佳实践

第1章&#xff1a;引言 大家好&#xff0c;我是小黑&#xff0c;咱们今天来聊聊Spring MVC&#xff0c;它是Spring的一个模块&#xff0c;专门用来构建Web应用程序。提供了一种轻量级的方式来构建动态网页。就像小黑我刚开始接触Java时候一样&#xff0c;可能对这些听起来很高…

GitHub 一周热点汇总第6期(2024/01/14-01/20)

GitHub一周热点汇总第6期 (2024/01/14-01/20) &#xff0c;梳理每周热门的GitHub项目&#xff0c;这一周的热门项目中AI的比重难得的变低了&#xff0c;终于不像一个AI热门项目汇总了&#xff0c;一起来看看都有哪些项目吧。 #1Maybe 项目名称&#xff1a;Maybe - 个人理财应…

4496 蓝桥杯 求函数零点 简单

4496 蓝桥杯 求函数零点 简单 //C风格解法1&#xff0c;通过率100% #include <bits/stdc.h> // int a, b; 一定会自动初始化为 0int main(){int a 2, b 3; // 定义a&#xff0c;b&#xff0c;不会自动初始化&#xff0c;最好自己定义时初始化// windows环境下a值固定&…

Broadcom交换芯片56620架构

文章目录 架构1.系统逻辑视图2.逻辑芯片视图3.芯片框图4.MIIM&#xff08;Medium Independent Interface Management&#xff09;5.交换结构6.CAP 架构 1.系统逻辑视图 Ingress Chip作用&#xff1a; 解析报文128字节的头部&#xff08;MMU&#xff08;Memory Management Uni…