Java实训第5天(Java语言基础)

本文详细介绍了Java中数组的基本概念,包括一维数组与二维数组的定义、初始化方式、常见操作及注意事项。通过具体示例展示了数组的遍历、取最值、反转及查找等操作,并探讨了Java中的参数传递问题。

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

01 数组概述

  • 数组的作用
    • 为了存储同种类型的多个值
  • 数组的概念
    • 数组是存储同一种数据类型多个元素的集合,可以看成是一个容器。
    • 数组既可以存储基本数据类型,也可以存储引用数据类型。
  • 数组定义格式

    数据类型[] 数组名 = new 数据类型[数组长度];
    

02 数组的初始化

  • 动态初始化

    数据类型[] 数组名 = new 数据类型[数组长度];
    
  • 静态初始化

    数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...}
    数据类型[] 数组名 = {元素1,元素2,元素3...}
    

03 数组操作的两个常见问题

  • 数组索引越界异常

    ArrayIndexOutOfBoundsException
    
  • 空指针异常

    NullPointerException
    
    • 数组已经不指向堆内存了,还用数组名去访问元素

04 数组的操作遍历

public static void print(int[] arr)
{
    for (int i = 0; i < arr.length; i++)
    {
        System.out.print(arr[i] + " ");
    }
}

05 数组的操作取最值

public static int getMax(int[] arr)
{
    int max = arr[0];
    for (int i = 1; i < arr.length; i++)
    {
        if (arr[i]  > max)
        {
            max = arr[i];
        }
    }
    return max;
}

06 数组的操作反转

public static int[] reverse()
{
    for (int i; i < arr.length / 2; i++)
    {
        arr[i] = arr[i] + arr[arr.length - 1 - i];
        arr[arr.length - 1 - i] = arr[i] - arr[arr.length - 1 - i];
        arr[i] = arr[i] - arr[arr.length - 1 - i];
    }
}

07 数组的操作查找

public static int getIndex(int[] arr,int value)
{
    for (int i = 0; i < arr.length; i++)
    {
        if (int[i] == value)
        {
            return i;
        }
    }
    return -1;
}

08 二维数组概述

  • 二维数组定义格式
    • 数据类型[][] 数组名 = new 数据类型[m][n]; (推荐使用这种)
    • 数据类型 数组名[][] = new 数据类型[m][n];
    • 数据类型[] 数组名[] = new 数据类型[m][n];
    • int[][] arr = new int[3][];
    • int[][] arr = {{1,2,3},{4,5},{6,7,8,9}};

09 二维数组的遍历

public static void print(arr[][] arr)
{
    for (int i = 0; i < arr.length; i++)
    {
        for (int j = 0; j < arr[i].length; j++)
        {
            System.out.print(arr[i][j] + " ");
        }
        System.out.println();
    }
}

Java中的参数传递问题

public static void main(String[] args) 
{
    int a = 10;
    int b = 20;
    System.out.println("a:" + a + ",b:" + b);
    change(a, b);
    System.out.println("a:" + a + ",b:" + b);

    int[] arr = {1, 2, 3, 4, 5};
    change(arr);
    for (int i = 0; i < arr.length; i++)
    {
        System.out.print(arr[i] + " ");
    }
}
public static void change(int a, int b) 
{
    System.out.println("a:" + a + ",b:" + b);
    a = b;
    b = a + b;
    System.out.println("a:" + a + ",b:" + b);
}
public static void change(int[] arr) 
{
    for(int x=0; x<arr.length; x++) 
    {
        if(arr[x] % 2 == 0)
        {
            arr[x] *= 2;
        }
    }
}
/*
运行结果:
a:10,b:20  //main方法区中
a:10,b:20  //change方法区中
a:20,b:30  //在change方法区中改变a和b的值
a:10,b:20  //main方法区中a和b的值不变
1 4 3 8 5  //main方法区中数组元素的值改变了
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值