java数组

本文详细介绍了Java中的数组,包括定义、创建、赋值、特点及常见操作。讲解了如何声明和初始化数组,以及如何给数组赋值。此外,还涉及到二维数组的使用,以及`Arrays`类的常用方法如`fill`、`sort`和`equals`。文中通过实例展示了冒泡排序算法,并提供了对数组进行排序和查找的操作。最后提到了二维数组和`Arrays`类在处理数组时的功能。

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

数组的定义

  • 数组是相同类型数据的有序集合
  • 数组描述的是相同类型的若干个数据,按照一定的先后顺序排列组成而成
  • 每一个数组称作一个数组元素,每个数组元素可以通过一个下表来访问他们
数组声明创建
  • 必须声明数组变量,才可以在程序中使用变量
            //声明变量
			int[] num1;//首选
            int num2[];//效果相同
  • 创建数组

            //创建数组
    		int[] num1 = new int[5];
    
  • 给数组赋值

        //给数组赋值
		int[0] = 1;
        int[1] = 2;
        int[2] = 3;
        int[3] = 4;
        int[4] = 5;
//静态初始化   创建+赋值
int[] a = {1,2,3,4};
//动态初始化   包含默认初始化
int[] a = new int[3];
a[0] = 1;
a[1] = 2;
a[2] = 3;
a[3] = 4;

数组的四个基本特点

  • 长度是确定的,数组一旦被创建,大小不能被改变

  • 其元素必须相同类型,不允许出现混合类型

  • 数组中的元素可以是任何数据类型,包括基本类型和引用类型

  • java对象是在堆中的,因此数组对象本身是在堆中的

    数组下标越界异常:.ArrayIndexOutOfBoundsException

    数组的使用

    基础使用
    int array[] = {1,2,3,4,5};
    //打印全部数组元素
    for (int i = 0; i < array.length; i++) {
        System.out.println(array[i]);
    }
    System.out.println("============================");
    //计算所有元素的和
    int sum = 0;
    for (int i = 0; i < array.length; i++) {
        sum = sum + array[i];
    }
    System.out.println(sum);
    System.out.println("============================");
    //查找最大元素
    int max = array[0];
    for (int i = 0; i < array.length; i++) {
        if (array[i]>max){
            max = array[i];
        }
    }
    System.out.println(max);
    
    //遍历数组
    //JDK 1.5,没有下标
    for (int i : array) {
        System.out.println(array[i]);
    }
    
    进阶使用
    int arrays[] = {1,2,3,4,5};
        int[] reverse = reverse(arrays);
        printArray(arrays);
    }
    //反转数组
    public static int[] reverse(int[] arrays){
        int[] result = new int[arrays.length];
        for (int i = 0 , j=result.length-1; i < result.length; i++ , j--) {
                result[j] = result[i] ;
        }
        return result;
    }
    //打印数组元素
    public static void printArray(int[] array){
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
    }
    

二维数组

int a[][] = new int[2][5];
//可以看成一个两行五列的数组
int[][] arrays = {{1,2},{2,3},{3,4},{4,5}};
// arrays[0]    {1,2}
// arrays[1]    {2,3}
// arrays[2]    {3,4}
// arrays[3]    {4,5}
for (int i = 0; i < arrays.length; i++) {
    for (int j = 0; j < arrays[i].length; j++) {
        System.out.println(arrays[i][j]);
    }

Arrays类

Arrays类的方法都是static静态修饰的,在使用的时候可以直接使用类名进行调用,而不是使用对象来调用

常用功能
  • 给数组赋值 :通过fill方法
  • 对数组排序:通过sort方法,升序
  • 比较数组:通过equals方法比较数组中的元素值是否相等
  • 查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找操作
int arra[] = {1,7,5,9,3};
int arra2[] = {1,7,5,9,3};
Arrays.fill(arra,1,3,8);//给数组赋值
System.out.println(Arrays.toString(arra));
Arrays.sort(arra);//对数组排序
System.out.println(Arrays.toString(arra));
//比较数组
System.out.println(Arrays.equals(arra,arra2));
//查找数组元素
Arrays.binarySearch(arra2,8);
System.out.println(Arrays.binarySearch(arra2,8));

冒泡排序(重点)

冒泡排序是最出名的排序算法之一,共有八大排序

两层循环,外侧冒泡轮数,里层依次比较

public static void main(String[] args) {
    int[] arrays = {9,5,3,64,8,1,20,35,85};
    int[] paixu =  paixu(arrays);
    System.out.println(Arrays.toString(arrays));
}
//冒泡排序
public static int[] paixu(int[] arrays){
        int temp = 0;  //临时变量
        //外层循环,判断要走多少次
    for (int i = 0; i < arrays.length-1; i++) {
        //内层循环,相互比较  如果后一个比前一个大 则交换位置
        for (int j = 0; j < arrays.length-1-i; j++) {
                if (arrays[j+1]<arrays[j]){
                    temp = arrays[j];
                    arrays[j] = arrays[j+1];
                    arrays[j+1] = temp;
                }
        }
    }
            return arrays;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值