Day.4 Arrays类

1.Arrays类

JDK中提供了一个专门用于操作数组的工具类,即Array类,位于java.util包中,该类提供了一系列方法来操作数组,比如排序、复制、比较、填充等、用户直接调用这些方法即可,不需要自己编码去实现,降低开发难度。

方法返回值说明
equals(array1,array2)boolean比较两个数组是否相等
sort(array)void对数组arry元素的进行升序的排列
toString(arrry)string将一个数组arry转换一个字符串
fill(arry,val)void把array数组中所有的元素都赋值为val
copyOf(arry,length)与arry数据类型一致把数组arry复制成一个长度为length的新数组
binarySearch(array,val)int查询元素值val在数组arry中的下标

2.Arrays类应用

1.比较两个数组是否相等

​ Arrays类的equals()方法·用于比较两个数组是否相等,只有当两个数组长度相等,对应的位置的元素也就一一相等时,该方法就返回true否则返回false
例1
需求:

初始化3个整数的一维数组,使用Arrays类的equals()方法判断是否两两相等,并输出结果

package Test3;

import java.lang.reflect.Array;
import java.util.Arrays;

/**
 * @作者:Xem626
 * @date: 2022/7/6 11:10
 * @TODO
 */
public class Test1{
    public static void main(String[] args) {
        int[] arr1 = {10, 50, 40, 30};
        int[] arr2 = {10,50,40,30};
        int[] arr3 = {60,50,65};
        System.out.println(Arrays.equals(arr1,arr2));
        System.out.println(Arrays.equals(arr2,arr3));
    }
}

在这里插入图片描述

2.对数组元素进行升序排序

Arrays类的sort()方法对数组的元素进行升序排列,也就是从小到大的顺序排列
例2
需求:

​ 分别对1班,2班,3班的学员成绩进行排序

​ 实现步骤:

​ 1.初始化一个整型的二维数组

​ 2.使用for循环去遍历二维数组

​ 3.使用Arrays类的sort()方法对二维数组的元素进行升序排列

​ 4.输出验证排序

package Test3;

import java.util.Arrays;

/**
 * @作者:Xem626
 * @date: 2022/7/6 11:17
 * @TODO
 */
public class Test2 {
    public static void main(String[] args) {
        int[][] array=new int[][]{{99,66},{92,55,66},{99,55}};
        for(int i=0;i<array.length;i++) {
            String string = (i + 1) + "班";
            Arrays.sort(array[i]);
            System.out.println(string + "成绩排序后");

            for (int j = 0; j < array[i].length; j++) {
                System.out.println(array[i][j]);
            }
        }
    }
}

在这里插入图片描述

3.将数组转换成字符串

​ toString()将一个数组转换成一个字符串,它按照顺序把多个数组元素连接一起,多个元素之间使用英文逗号和空格隔开
例3

package Test3;

import java.util.Arrays;

/**
 * @作者:Xem626
 * @date: 2022/7/6 14:51
 * @TODO
 */
public class Test3 {
    public static void main(String[] args) {
        int []arr={10,20,30};
        System.out.println(arr);
        System.out.println(Arrays.toString(arr));
    }
}

在这里插入图片描述

4.将数组所有的元素赋值为相同的值

​ Arrays类中提供了一个fill(arry,val),此方法用于把数组arry所有的元素都赋值为val
例4

package Test3;

import java.util.Arrays;

/**
 * @作者:Xem626
 * @date: 2022/7/6 14:55
 * @TODO
 */
public class Test4 {
    public static void main(String[] args) {
        int arr[]={10,20,30,40};
        Arrays.fill(arr,20);
        System.out.println(Arrays.toString(arr));
    }
}

在这里插入图片描述

5.将数组复制成一个长度为设定值的新数组

​ 实现的步骤:

​ 1.初始化一个长度为4的整型数组

​ 2.使用copyOf()方法
例5

package Test3;

import java.util.Arrays;

/**
 * @作者:Xem626
 * @date: 2022/7/6 14:58
 * @TODO
 */
public class Test5 {
    public static void main(String[] args) {

        int arr[]={10,20,30,40};
        int arr1[]= Arrays.copyOf(arr,3);
        System.out.println(Arrays.toString(arr1));
        int arr2[]= Arrays.copyOf(arr,5);
        System.out.println(Arrays.toString(arr2));
        int arr3[]= Arrays.copyOf(arr,4);
        System.out.println(Arrays.toString(arr3));



    }
}

在这里插入图片描述
注意:

​ Arrays类的copyOf(array,length)方法可以进行数组复制,把原数复制成一个新数组,其中length是新数组的长度。如果length小于原数组的长度,则新数组就是原数组的前面length个元素;如果length大于原来数组的长度,则新数组前面的元素的原数组的所有元素;后面元素是按数组类型补充默认的初始值,如整型补充0,浮点型补充0.0等。

6.查询元素在数组中的下标

例5

package Test3;

import java.util.Arrays;

/**
 * @作者:Xem626
 * @date: 2022/7/6 15:03
 * @TODO
 */
public class Test6 {
    public static void main(String[] args) {
        
        int arr[]={10,20,90,40};
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));
        int index=Arrays.binarySearch(arr,40);
        System.out.println(index);
    }
}

在这里插入图片描述

本章总结:

​ 1.数组可以在内存中连续存储多个元素的结构,数组中的所有元素必须属于相同的数据类型

​ 2.数组中的元素通过数组下标进行访问,数组下标从0开始

​ 3.二维数组实际上是一个一维数组,它的每个元素是一个一维数组

​ 4.使用Arrays类提供的方法可以方便的对数组中的元素进行排序,查询等操作。

​ 5.JDK1.5之后提供了增强for循环,可以用来实现对数组和集合中数据的访问

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xem626

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值