3_3、Java基本语法之数组的常用算法及Arrays工具类的使用

操作java数组的常用工具类 操作java数组的常用工具类 和大家共享一下 共同学习 立即下载

一、数组的常用算法

        1、数组的创建与元素赋值:杨辉三角、回形数等。

        2、针对于数值型的数组:
                求数值型数组中元素的最大值、最小值、平均数、总和等

        3、数组的赋值与复制

                int[] array1, array2;
                array1 = new int[] { 2, 3, 5, 7, 11, 13, 17, 19 };
                array2 = array1;
                
                for (int i = 0; i < array2.length; i++) {
                    if (i % 2 == 0) {
                    array2[i] = i;
                    }
                }

                3.1、赋值:array2 = array1

         理解:将array1指向堆空间中的实体的地址值赋值给array2,既array1和array2同时指向堆空间中的同一个数组实体。

        3.2、复制:

        理解:在堆空间中开辟一个新的实体,长度与array1相同,然后一个个的按顺序将array1中元素的值赋给array2中元素。

        4、数组元素的反转

    for(int i=0;i<array2.length/2;i++){
            int temp = array2[i];
            array2[i] = array2[array2.length-1-i];
            array2[array2.length-1-i] = temp;
        }  

        5、数组中指定元素的查找:检索、搜索

                5.1、线性查找: 
                        实现思路:按顺序遍历数组,一个个的查找目标值
                        适用性:普遍适用

        int[] arr = new int[]{34,5,22,-98,6,-76,0,-3};
		int dest = 22;
		boolean isFlag = true;
		for(int i=0;i<arr.length;i++){
			if(arr[i] == dest){
				System.out.println("恭喜你,找到了,位置的索引为:"+ i );
				isFlag = false;
				break;
			}
		}
		
		if(isFlag){
			System.out.println("没找到");
		}


                5.2 二分法查找:
                        实现思路:每次折中查找目标。
                        适用性:前提:有序的数组。

		int[] arr2 = new int[]{-98,-34,-1,0,3,14,25,36,54,99};
		int dest1 = 25;
		int head = 0;
		int end = arr2.length-1;
		boolean isFlag1 = true; 
		while(head<=end){
			int mid = (head+end)/2;
			if(dest1 == arr2[mid]){
				System.out.println("恭喜你,找到了,位置是"+mid);
				isFlag1 = false;
				break;
			}else if(arr2[mid] > dest1){
				end = mid-1;
			}else{
				head = mid+1;
			}
		}
		if(isFlag1){
			System.out.println("很遗憾没有找到");
		}

         6、数组的排序算法

                 6.1、冒泡排序(需要会手写)

		int[] arr = new int[]{34,5,22,-98,6,-76,0,-3};
		//冒泡排序
		
		for(int i = 0;i<arr.length-1;i++){
			for(int j=0;j<arr.length-1-i;j++){
				if(arr[j]>arr[j+1]){
					int temp = arr[j];
					arr[j] = arr[j+1];
					arr[j+1] = temp;
				}
			}
		}
		for(int i=0;i<arr.length;i++){
			System.out.print(arr[i]+" ");
		}

二、Arrays工具类的使用

        1.理解:java.util.Arrays类即为操作数组的工具类,包含了用来操作数组(比如排序和搜索的各种方法。 

        2.使用:

	    //boolean equals(int[] a,int[] b):判断两个数组是否相等。
		int[] arr = new int[]{1,2,3,4};
		int[] arr1 = new int[]{1,3,2,4};
		boolean isEquals = Arrays.equals(arr, arr1);
		System.out.println(isEquals);//false
		
		//String toString(int[] a) :输出数组信息。
		System.out.println(Arrays.toString(arr));
		
		//void fill(int[] a,int val) 将指定值填充到数组之中。
		Arrays.fill(arr, 12);
		System.out.println(Arrays.toString(arr));
		
		//void sort(int[] a) 对数组进行排序。
		
		Arrays.sort(arr1);
		System.out.println(Arrays.toString(arr1));
		
		//int binarySearch(int[] a,int key) 对排序后的数组进行二分法检索指定的值。
		int[] arr2 = new int[]{0,102,-2,32,54,1,37,99,-5,-56,0,32,-99,100};
		Arrays.sort(arr2);
		System.out.println(Arrays.toString(arr2));
		int index = Arrays.binarySearch(arr2, 99);
		System.out.println(index);

三、数组常见异常

1.数组角标越界异常:ArrayIndexOutOfBoundsException

          int[] arr = new int[]{1,2,3,4};
//        System.out.println(arr[5]);
//        arr[-2] = 0;

2.空指针异常:NullPointerException

        //情况1:
        int[] arr1 = new int[5];
        arr1 = null;
//      System.out.println(arr1[1]);
        
        //情况2:
        int[][] arr2 = new int[10][];
        System.out.println(arr2[0]);//null
//      System.out.println(arr2[1][1]);
        
        //情况3:
        String[] arr3 = new String[]{"aa","bb","cc"};
        arr3[0] = null;
//      System.out.println(arr3[0].toString());


注意:一旦出现异常,程序就终止执行。

Pytorch(一) Pytorch 的安装 安装步骤 1.检查是否有合适的GPU, 若有安装Cuda与CuDNN 2.下载pytorch安装文件,进行pytorch的安装 检查电脑是否有合适的GPU 在桌面上右击如果能找到NVIDA控制面板,则说明该电脑有GPU。控制面板如下,并通过查看系统信息获取支持的Cuda版本 点击 帮助->点击 系统信息 弹出下面的对话框,在驱动程序版本那一栏就能看到该计算机使用的驱动版本。 ... 阅读详情

相关推荐

零基础玩转NILM:用nilmtk提取UKDALE电器数据的保姆级教程

本文为零基础用户提供了一份详细的NILM入门指南,重点讲解如何使用nilmtk工具包从UKDALE数据集中提取电器级用电数据。教程涵盖环境搭建、核心概念解析、数据提取实战及常见问题排查,帮助读者快速掌握非侵入式负荷监测的数据预处理关键步骤。

rgv234567的博客 499

java数组之数组工具类——Arrays的使用

介绍数组常用的工具类中的方法,已经常见的关于数组的异常。

weixin_44554794的博客 1787

UE5.3像素流送Docker化部署:从Linux服务器搭建到云端实时渲染

本文详细介绍了在Linux服务器上使用Docker容器化部署UE5.3像素流送服务的完整流程。通过将虚幻引擎运行时、信令服务器和TURN服务打包为标准化镜像,利用Docker Compose进行编排,实现了云端实时渲染应用的快速部署、环境一致与弹性扩展,有效解决了传统部署中的环境依赖与运维难题。

k0l1m2n3o的博客 200

在Java中如何使用Arrays工具类对数组进行操作

一个类似淘宝助手和ebay助手的客户端程序,可以方便地在本地处理门店数据,并在本地门店、在线门店和第三方平台之间实现数据上传和下载功能。连接本地商店:您可以使用shopex助手连接本地安装的商店系统,这样您就可以使用助手编辑本地商店的商品数据,数据也将存储在本地商店数据库中。Arrays.asList() 将数组转换为List,但存在局限性:仅适用于对象数组,并且返回的List大小固定。在包中,为数组的常见操作提供了大量的静态方法,如排序、搜索、比较、填充和转换等。- 如果只排序数组的一部分,可以使用。

sillyoung的博客 23

C语言|深入浅出讲解int转换为float全过程(附2017年统考大题案例)

int转换为float类型为什么会发生精度损失? 精度损失的详细过程究竟是什么样的? 什么样情况float会发生精度损失?没有弄懂2017年浮点数统考大题? 这一篇用2017年统考大题案例帮你更深的理解浮点数的存储规则。

DADONGOOO的博客 1万+

巨详细Java JDK环境配置(Mac 版)

本篇最详细保姆级教程Mac OS上安装JDK以及配置环境细化每个步骤过程认真看完。

EverythingDone的博客 1万+

新手小白学JAVA 数组 数组工具类 二维数组

1 数组 1.1 概念 数组Array,标志是[ ] ,用于储存多个相同类型数据的集合 想要获取数组中的元素值,可以通过脚标(下标)来获取 数组下标是从0开始的,下标的最大值是数组的长度减1 1.2 创建数组 数组的创建方式一般分为动态初始化和静态初始化 动态初始化 int[] a = new int[5]; 静态初始化 int[] b = new int[]{1,2,3,4,5}; int[] c = {1,2,3,4,5}; 1.3 创建数组过程分析 程序创建数组 int[] a = new

程序媛泡泡的博客 6万+

告别理论劝退:用动画和Tanner图轻松理解QC-LDPC的译码原理(BP算法详解)

本文通过动画和Tanner图直观解析QC-LDPC码的BP译码原理,帮助读者轻松理解802.11ac协议中的编译码过程。文章详细展示了QC-LDPC的结构之美、BP算法的动态信息流动以及LLR的视觉化解读,并对比了硬判决算法的性能差异,为开发者和研究者提供了实用的可视化工具开发建议。

weixin_30411239的博客 492

(Java)Arrays类常用方法

Arrays类 数组的工具类java.util.Arrays 由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作。 查看JDK帮助文档 Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而“不用”使用对象来调用(注意:是“不用”而不是“不能”) 具有以下常用功能: 给数组赋值:通过fill方法 int[] a; 第一种:Arrays.fill(a,3).

m0_62967952的博客 444

Android 15.0 app进程保活白名单功能实现

在15.0的系统rom产品开发中,在某些重要的app即使进入后台,产品需求要求也不想被系统杀掉进程,需要app长时间保活,就是app进程保活白名单功能的实现, 所以需要在系统杀进程的时候不杀掉白名单的进程,接下来就看怎么样来实现这些功能

安卓兼职framework和app工程师的博客 638

2025电赛嵌入式:K210教程-如何刷固件 如何烧录代码 全网唯一

本文介绍了K210开发板的固件刷写和开发环境搭建方法。主要内容包括:1)从Sipeed官网下载合适的MaixPy固件,根据需求选择完整版或精简版;2)使用k-flash等工具烧录固件,注意区分亚博和Sipeed开发板的固件版本;3)介绍了擦除闪存的两种模式(部分擦除和完全擦除)及其应用场景;4)搭建CanMV开发环境,通过MaixPy IDE连接开发板并进行程序调试。文章还提供了常见问题的解决方法,如串口驱动安装、固件兼容性检查等,为K210开发提供了完整的入门指南。

FJN110的博客 546

练习-Java数组之Arrays类操作数组之数组排序

任务描述 本关任务:根据控制台接收的数据,创建数组,对数组中的每个值求平方,将得到的结果进行升序排序,并输出最后的结果。 编程要求 仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,根据控制台接收的数据,创建数组,对数组中的每个值求平方,将得到的结果进行升序排序,并输出最后的结果,具体要求如下: 接收给定的一行整数(如:12 345 646 44 365 23 56 5 1 6 58 12 3 %。其中第一个数为数组长度,其余数为数组元素,最后一个 % 用于从控制

drizzle2333的博客 5548

2024全国村级行政边界数据

五级行政区划:村边界数据产品涵盖五级行政区划:(一级行政区)省级行政区共31个其中:(台湾、香港、澳门除外);(二级行政区)地级行政区共334个其中:7个地区、3个盟、30个自治州、294个地级市;(三级行政区)县级行政区共2851个其中:1355个县、117个自治县、49个旗、3个自治旗、363个县级市、962个市辖区、1个林区、1个特区;(四级行政区)乡级行政区共40497个其中:11626个乡、1034个民族乡、20117个镇、7566个街道、151个苏木、1个民族苏木、2个县辖区公所;

J_Giser的博客 3229

深入理解 Java 基本语法之数组

数组是同一种类型数据的集合,是一种容器,能给存储进来的元素自动进行编号,编号从 0 开始。

qq_25699299的博客 2603

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Java基础06(数组进阶 Arrays工具类)

第一种方式是通过for循环:因为数组的每个元素都可以通过索引来访问,因此,使用标准的for循环可以完成一个数组的遍历:初始条件为i=0,因为索引总是从0开始,继续循环的条件为i < ns.length,因为当i = ns.length时,i已经超出了索引范围(索引范围是0 ~ ns.length-1),每次循环后,i++实现索引递增。

qq_52897007的博客 1444

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

java - 数组工具类Arrays

在Java中,Arrays是一个提供了各种数组操作的工具类。它包含了许多静态方法,用于对数组进行排序、搜索、复制、填充等操作。Arrays类可以用于处理基本类型数组和对象类型数组。Arrays类提供的方法可以大大简化对数组的操作,使得代码更加简洁和高效。它可以帮助开发人员快速完成常见的数组操作,而不需要手动编写复杂的循环和逻辑。

weixin_73869209的博客 2163

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Java中Arrays数组工具类的使用全解

本文几乎涵盖了所有的Arrays工具类(基于Java 11)的方法以及使用用例,一站式带你了解Arrays类的用法,希望对大家有帮助。

soberw的日常分享博客 5628

【Java】Java Arrays 工具类详解

Java 数组操作工具类 java.util.Arrays 提供了丰富的静态方法,包含排序(sort()/parallelSort())、查找(binarySearch())、比较(equals()/deepEquals())、复制(copyOf())、填充(fill())等功能。它支持多维数组处理(deepToString())和并行操作(JDK8+),还能转换为Stream流进行函数式编程。使用时需注意:binarySearch()需先排序,asList()返回固定大小列表。简化了数组操作。

经天纬地,格物致理 1707

Arrays工具类常用方法

在Java API中提供了操作数组的工具类 java.util.Arrays,例如:排序,查找,复制,数组转集合,数组转字符串等常见操作。本文将介绍Arrays中常用的方法。

谷哥的小弟 1585

Arrays工具类的常见方法总结

Arrays工具类的常见方法总结,Arrays 是 Java 标准库中的一个实用工具类,它包含了许多静态方法,用于操作数组。以下是一些 Arrays 工具类中常见方法的总结:

xzcxzc1q的博客 1942

【Java杂记】工具类:数组工具类 Arrays

在文章开头,我们先看看工具类通用的特征: 构造器必须是私有的。这样的话,工具类就无法被 new 出来,因为工具类在使用的时候,无需初始化,直接使用即可,所以不会开放出构造器出来。 工具类的工具方法必须被 static、final 关键字修饰。这样的话就可以保证方法不可变,并且可以直接使用,非常方便。 我们需要注意的是,尽量不在工具方法中,对共享变量有做修改的操作访问(如果必须要做的话,必须加锁),因为会有线程安全的问题。除此之外,工具类方法本身是没有线程安全问题的,可以放心使用。 1.Arrays Ar

A minor 2195

【Java基础】——集合工具类Collections和数组工具类Arrays

android培训------我的java笔记,期待与您交流! 一、集合工具类Collections 1、什么是Collections? Collections是对集合框架的一个工具类。它里边的方法都是静态的,不需要创建对象。并未封装特有数据。在Collections工具类中大部分方法是用于对List集合进行操作的,如比较,二分查找,随机排序等。 2、常见操作 ①查找 T ma

lucas的编程之旅 4056

Java Arrays工具类详解

全面性:覆盖数组操作的各个方面高效性:底层使用优化算法实现便利性:静态方法调用简单直接小数组直接使用Arrays方法大数组考虑使用并行方法(如需要复杂操作时可结合Stream API使用Java 17 Arrays文档。

weixin_52242569的博客 1369

第05章_数组(一维数组的使用、内存分析、应用,多维数组的使用,数组的常见算法,Arrays工具类的使用,数组中的常见异常)

需要统计某公司50个员工的工资情况,例如计算平均工资、找到最高工资等。用之前知识,首先需要声明50个变量来分别记录每位员工的工资,这样会很麻烦。因此我们可以将所有的数据全部存储到一个容器中统一管理,并使用容器进行计算。**生活中的容器:**水杯(装水等液体),衣柜(装衣服等物品),集装箱(装货物等)。**程序中的容器:**将多个数据存储到一起,每个数据称为该容器的元素。因为第一个元素距离数组首地址间隔0个单元格。Java 语言里提供了支持多维数组的语法。如果说可以把一维数组当成几何中的线性图形。

小丁的博客 1139

Java中Array数组工具类常用方法

在Java中Arrays工具类,可以帮助我们数组拷贝,打印,排序等等,今天我们来探究一下

2401_89019969的博客 1313

数组的工具,Arrays工具类

Arrays工具类的常用方法,混个眼熟,别等用的时候找不到!!!

Best_jiangX的博客 1351
上一篇: 3_2、Java基本语法之一维数组与二维数组的使用
下一篇: 4_1、Java基本语法之面向对象(上)类与对象
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值