Java基础学习——数组(4、数组的基本操作:遍历数组,填充替换数组元素,对数组进行排序,复制数组,数组查询)

本文介绍了Java中数组的基本操作,包括如何遍历数组、使用Arrays.fill()填充替换元素、使用Arrays.sort()进行排序、利用copyOf()和copyOfRange()复制数组,以及运用binarySearch()进行查询。文中通过代码演示了每种操作的实现方式,适用于Java初学者学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

4、数组的基本操作

1、遍历数组
遍历数组就是获取数组中的每个元素。通常遍历数组都使用for循环来实现。
遍历一维数组很简单,遍历二维数组需要使用双层for循环,通过数组的length属性可获得数组的长度。
在遍历数组时,使用foreach语句可能更简单。

代码演示:

package com.company.day8;

public class day82 {
    public static void main(String[] args){
        int[][] a = new int[][]{{1,2,3,4},{5,6,7,8},{9,6,3,0}};
        for (int[] ints : a) {
            for (int anInt : ints) {
                System.out.print(anInt);
                System.out.print(" ");
            }
            System.out.println();
        }
    }
}

结果:
在这里插入图片描述

2、填充替换数组元素
数组中的元素定义完成后,可通过Arrays类的静态方法fill()来对数组中的元素进行替换。该方法通过各种重载形式可完成对任意类型的数组元素进行替换。
fill()方法有两种参数类型,下面以int型数组为例介绍fill()方法的使用方法。
(1)fill (int [] a,int value)
a:要进行元素替换的数组
value:要存储数组中所有元素的值。
(2)fill (int [] a,int fromIndex,int toIndex,int value)
a:要进行填充的数组
fromIndex:要使用指定值填充的第一个元素的索引(包括)。
toIndex:要使用指定值填充的最后一个元素的索引(不包括)。
value:要存储在数组所有元素中的值。
注意:如果指定的索引位置大于或等于要进行填充的数组的长度,则会报出ArrayIndexOutOfBoundsException异常。(数组越界异常)

代码演示:

package com.company.day8;
import java.util.Arrays;

public class day82 {
    public static void main(String[] args){
        System.out.println("原数组a:");
        int[][] a = new int[][]{{1,2,3,4},{5,6,7,8},{9,6,3,0}};
        for (int[] ints : a) {
            for (int anInt : ints) {
                System.out.print(anInt);
                System.out.print(" ");
            }
            System.out.println();
        }
        System.out.println("1,被替换后的数组a");
        Arrays.fill(a[0],2);
        Arrays.fill(a[1],2);
        Arrays.fill(a[2],2);
        for (int[] ints : a){
            for(int anInt : ints){
                System.out.print(anInt);
                System.out.print(" ");
            }
            System.out.println();
        }
        System.out.println("2,被替换后的数组a");
        Arrays.fill(a[0],0,3,4);
        Arrays.fill(a[1],2,4,6);
        Arrays.fill(a[2],1,3,9);
        for (int[] ints : a){
            for(int anInt : ints){
                System.out.print(anInt);
                System.out.print(" ");
            }
            System.out.println();
        }
    }
}

结果:
在这里插入图片描述
注意:fill()方法只可对一维数组操作,面对高维数组,需要分段操作。

3、对数组进行排序
通过Arrays类的静态sort()方法可以实现对数组的排序。
sort()方法提供了多种重载形式,可对任意类型的数组进行升序排序。
语法如下:
Arrays.sort(object)
object:进行排序的数组名称。

代码演示:

package com.company.day8;
import java.util.Arrays;

public class day83 {
    public static void main(String[] args){
        int[] a = new int[]{99,33,55,12,45,66,78};
        Arrays.sort(a);
        for(int x : a){
            System.out.println(x);
        }
    }
}

结果:
在这里插入图片描述
注意:sort()方法只可对一维数组进行操作,面对高维数组,只能在一维数组范围操作

4、复制数组
Arrays类的copyOf()方法与copyOfRange()方法可以实现对数组的复制。
copyOf()方法是复制数组至指定长度,copyOfRange()方法则将指定数组的指定长度复制到一个新数组中。

  1. copyOf()方法
    该方法提供了多种重载形式,用于满足不同类型数组的复制。
    语法如下:
    copyOf(arr,newlength)
    arr:要进行复制的数组。
    newlength:int型常量,指复制后的新数组的长度。如果新数组的长度大于数组arr的长度,则用0填充(根据复制数组的类型决定填充的值。整型数组填充0,char型数组填充null);如果复制后的新数组的长度小于arr数组的长度,则会从数组arr的第一个元素开始截取至满足新数组长度为止。
  2. copyOfRange()方法
    该方法同样提供了多种重载形式。
    语法如下:
    copyOfRange(arr,int fromIndex,int toIndex)
    arr:要进行复制的数组。
    fromIndex:指定开始复制数组的索引位置。fromIndex必须在0至整个数组的长度之间。新数组包括索引是fromIndex的元素。
    toIndex:要复制范围的最后索引位置。可大于arr数组的长度。新数组不包括索引是toIndex的元素。

代码演示:

package com.company.day8;
import java.util.Arrays;

public class day84 {
    public static void main(String[] args){
        int[] arr = new int[]{23,13,14};
        System.out.println("1.copyOf()--------");
        int[] arr1 = Arrays.copyOf(arr,5);
        for (int x : arr1){
            System.out.print(x);
            System.out.print(" ");
        }
        System.out.println();
        System.out.println("2.copyOfRange()---------");
        int[] arr2 = Arrays.copyOfRange(arr,0,2);
        for (int x:arr2){
            System.out.print(x);
            System.out.print(" ");
        }
    }
}

结果:
在这里插入图片描述

5、数组查询
Arrays类的binarySearch()方法,可以用二分搜索法来搜索指定数组,以获得指定对象。
该方法返回要搜索元素的索引值。
binarySearch()方法提供了多种重载形式,用于满足各种类型数组的查找需求。
binarySearch()方法有两种参数类型。

  1. binarySearch(Object[],Object key)
    语法如下:
    binarySearch(Object[] a,Object key)
    a:要搜索的数组。
    key:要搜索的值。
    如果key包含在数组中,则返回搜索值的索引;否则返回-1或“-”(插入点)。插入点是搜索键将要插入数组的那一点,即第一个大于此键的元素索引。
    注意:必须在调用之前对数组进行排序(sort()方法)。如果没有对数组进行排序,则结果是不确定的,如果数组包含多个带有指定值的元素,则无法保证找到的是哪一个。
  2. binarySearch(Object[],int fromIndex,int toIndex,Object key)
    该方法在指定的范围内检索某一元素。
    语法如下:
    binarySearch(Object[] a,int fromIndex,int toIndex,Object key)
    a:要搜索的数组。
    fromIndex:指定范围的开始处索引(包含)。
    toIndex:指定范围的结束处索引(不包含)。
    key:要搜索的值。
    必须在调用之前对数组进行排序,来获取准确的索引值。如果key包含在数组中,则返回搜索值的索引;否则返回-1或“-”(插入点)。如果范围中的所有元素都小于指定的键,则为toIndex(注意,这保证了当且仅当此键被找到时,返回值将大于等于0)。
    注意:如果指定的范围大于或等于数组的长度则会报出ArrayIndexOutOfBoundsException异常。(数组越界异常)

代码演示:

package com.company.day8;
import java.util.Arrays;

public class day85 {
    public static void main(String[] args){
        System.out.println("1.binarySearch(Object[],Object key)--------------");
        int[] a = new int[]{1,8,9,4,5};
        Arrays.sort(a);
        int index1 = Arrays.binarySearch(a,5);
        System.out.println("5的索引位置是:"+index1);
        System.out.println("2. binarySearch(Object[],int fromIndex,int toIndex,Object key)--------");
        String[] str = new String[]{"ab","zy","cd","ef","gh","ik"};
        Arrays.sort(str);
        int index2 = Arrays.binarySearch(str,1,4,"ef");
        System.out.println("ef的索引位置是:"+index2);
    }
}

结果:
在这里插入图片描述

欢迎参考学习,有错请指证,喜欢的请关注本人博客,不定期更新学习心得,学习笔记。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值