认识数组,了解数组

这篇博客详细介绍了Java中的数组概念、定义、初始化、使用及注意事项,并提供了四个示例,包括查找数组最大值及其下标、判断数组中是否存在特定数值、数组元素逆序交换以及删除数组中所有0的元素。内容涵盖动态和静态初始化,以及二维数组的操作。通过这些示例,读者可以深入理解Java数组的运用。
摘要由CSDN通过智能技术生成

什么是数组

数组:数组可以存放多个同一类型的数据。数组也是一种数据类型,是引用类型。
即:数(数据)组(一组)就是一组数据。

数组的使用
数组的定义
1、动态初始化
数据类型 数组名[]=new 数据类型[大小]
int[] arr=new int[10];//创建了一个数组,名字arr,存放10个int类型的数据
说明:这是定义数组的一种方法。
数组的引用(使用/访问/获取数组元素)
数组名[下标/索引/index]比如:你要使用a数组的第3个数 a[2],数组的下标从0开始

2、动态初始化
先声明数组
语法:数据类型 数组名[];也可以数据类型[]数组名;
int a[];或者int []a;

创建数组
语法:数组名=new 数据类型[大小];
a=new int[10];

3、静态初始化
语法:数据类型 数组名[]={元素值,元素值,…}
例如:int a[]={1,2,3,4,5}

数组使用注意事项
1、数组是多个相同类型数据的组合,实现对这些数据的统一管理

2、数组中的元素可以是任何数据类型,包括基本类型和引用类型,但是不能混用。

3、数组创建后,如果没有赋值,有默认值
int 类型默认值为 0
short 类型默认值为 0
byte 类型默认值为 0
long 类型默认值为 0
float 类型默认值为 0.0
double 类型默认值为 0.0
char 类型默认值为 \u0000
boolean 类型默认值为 false
String 类型默认值为 null

4、使用数组的步骤
①、声明数组并开辟空间
②、给数组各个元素赋值
③、使用数组

5、数组的下标是从0开始的。
6、数组下标必须在指定范围内使用,否则报:下标越界异常,比如int a[]=new int[5];则有效下标为0-4
7、数组属引用类型,数组型数据是对象(object)

数组赋值机制
1、基本数据类型赋值,这个值就是具体的数据,而且相互不影响。
2、数组默认情况下是引用传递,赋的值是地址。(第一个元素为这个数组的地址)

二维数组的使用(分配空间是分配的是真实的数,而不是相应的索引数)
1、动态初始化
1)语法:类型 数组名[][]=new 类型[大小][大小]
//第一个大小表示包含几个一维数组,
//第二个大小表示每一个一维数组包含几个元素。

2、静态初始化
1)语法:定义类型 数组名[][]={{值1,值2},{值1,值2},{值1,值2}…}

例题1、
请求出一个数组int[]的最大值{4,-1,9,10,23},并得到对应的下标

public class Test {
    public static void main(String[] args) {
        int[] arr={4,-1,9,10,23};
        int max=arr[0];
        int index=-1;
        for (int i = 0; i <arr.length ; i++) {
            if(max<arr[i]){
                max=arr[i];
                index=i;
            }
        }
        System.out.println("最大值为"+max);
        System.out.println("下标为"+index);
    }
}

例题2:
有一个数组:int [] arr = {8,4,2,1,23,344,12}。
猜数游戏:从键盘中任意输入一个数据,判断数组中是否包含此数,并写出下标

public class Test {
    public static void main(String[] args) {
        int[] arr={8,4,2,1,23,344,12};
        int index=-1;
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入一个数");
        int num=scanner.nextInt();
        for (int i = 0; i < arr.length; i++) {
            if(num==arr[i]){
                System.out.println("找到该数字"+num);
                index=i;
                System.out.println("其下标为"+index);
            }
        }
        if(index==-1){
            System.out.println("没找到该数");
        }
    }
}

例题3:
把一个数组的元素逆序交换,int[] arr = { 5, 11, 15, 24, 36, 47, 59, 66 };
交换元素后为 { 66 ,59 ,47 ,36 ,24,15 ,11 ,5 };

public class Test {
    public static void main(String[] args) {
        int[] arr = { 5, 11, 15, 24, 36, 47, 59, 66 };
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]<arr[arr.length-1-i]){
                int temp=arr[i];
                arr[i]=arr[arr.length-1-i];
                arr[arr.length-1-i]=temp;
            }
        }
        for (int i = 0; i <arr.length ; i++) {
            System.out.print(arr[i]+"\t");
        }
    }
}

例题4:
现在有如下一个数组:
int oldarr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
要求将以上数组中的0项去掉,将不为0的值存入一个新的数组

public class Test {
    public static void main(String[] args) {
        int oldarr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
        int newarr[]=new int[12];
        for (int i = 0,j=0; i <oldarr.length; i++) {
            if(oldarr[i]!=0){
                newarr[j]=oldarr[i];
                j++;
            }
        }
        for (int i = 0; i <newarr.length ; i++) {
            System.out.print(newarr[i]+"\t");
        }
    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值