Java中的数组

数组是什么?

数组是用于存储相同类型的元素的一个固定大小的连续集合。数组是用于存储数据的集合,但往往将数组认为是相同类型的变量的集合。

跟声明单个变量相反,如number0,number1,... number99,声明一个数组变量,如数字和使用numbers[0],numbers[1],...,numbers[99]来表示各个变量。

声明数组变量(定义数组)

数据类型[] 数组名;

数据类型 数组名[];

两种方式虽然写法与读法都不同,但是表示着相同的含义,推荐使用第一种书写方式,第二种是为了为了继承C/C++的书写风格。

数组的初始化

1>静态初始化:给定数组中元素的值,数组的长度由系统给定;

2>动态初始化:给数组指定长度,数组中的元素值由系统默认给定;

写法如下:

静态初始化:int[] a=new int[]{1,2,3,4,5};       (简写)int a={1,2,3,4,5};

动态初始化:int[] a=new int[5];

两种定义方法不可以同时使用,只能静态初始化或动态初始化。

数组元素通过索引访问。数组的下标是从0开始的,也就是说,它们从0开始到.length-1。(【数组名.length】可查询到数组中有多少个元素)

例如输出如上动态数组中第一个值与最后一个值:

System.out.println(a[0]);

System.out.println(a[4]);

直接输出数组名时会输出数组的地址。

数组中经常会遇到的异常

ArrayIndexOutOfBoundsException:

数组角标越界异常

出现的原因:访问了数组中不存在的索引值;

NullPointerException:

空指针异常 (在实际开发中该异常是最多的)

出现的原因:对象为null,而开发者还要去使用对象,就会出现问题

解决方案:给某个对象进行非空判断,防止程序程序空指针异常

数组的应用

查找最值

可以设置一个参照物,将数组的其他值与参照物进行比较,输出最大值或者最小值。

public static void main(String[] args) {
        int[] array = {12,1,2,45,30,50};
        int max= array[0];//定义最大值为该数组的第一个数
        int min= array[0];//定义最小值为该数组的第一个数
        //遍历循环数组
        for (int i = 0; i < array.length; i++) {
            if(max < array[i]){
                max = array[i];
            }
            if(min> array[i]){
                min= array[i];
            }
        }
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i]+" ");
        }
        System.out.println();
        System.out.println("这个数组的最大值为:"+max+"\t最小值为:"+min);
    }
}

数组元素逆序

设置一个中间变量将两侧的元素值进行互换。

 public static void main(String args[]){  
   int array[] = new int[]{1,2,3,4,5};  
        int array2[] = new int[];  
        for(int i = 0; i < array.length/2; i++){  
         int temp = arr[i] ;
         arr[i] = arr[arr.length-1-i] ;
         arr[arr.length-1-i] = temp ;

        } 

System.out.print("[");
        for(int i = 0 ; i < arr.length ; i ++) {
            if(i==arr.length -1) {
                System.out.println(arr[i] +"]");
            }else {
                System.out.print(arr[i] +", ");
            }

        }

}

数组中的元素基本查找法

查找的是该元素在数组中的索引(根据索引查找数组的元素)

public static void main(String[] args) {
        String[] str = {"星期一","星期二","星期三","星期四","星期五","星期六","星期天"} ;
        Scanner sc = new Scanner(System.in) ;
        System.out.println("请输入一个数据:(1-7):");
                int index = sc.nextInt()-1 ;    
        System.out.println("你要查找的是:"+str[index]);
    }

查找某个元素在该数组中第一次出现的索引(根据元素查找第一次出现的索引)

可以用IF语句实现

public static int findIndex(int[] arr,int value) {
        for(int x = 0 ; x < arr.length ; x ++) {
            if(arr[x] == value) {
                return x ;
            }

        }

二维数组

数据类型[] [] 数组名 = new 数据类型[m][n] ;
            m:代表当前二维数组中有多少个一维数组
            n:代表每一个一维数组中的长度
定义的方式还有以下两种情况
        数据类型[]  数组名[] = new 数据类型[m][n]
        数据类型 数组名[][] = new 数据类型[m][n]

二维数组初始化:

第一种方式:  

int a[][]={{1,2,3},{4,5,6}};  
第二种方式;  
int[][] ints = new int[4][2];  
ints[i][j] =__; //分别赋值  
第三种方式:第二维的长度可以动态申请 
int[][] arr3 = new int[5][];//五行的长度  
for(int i=0; i<arr3.length; ++i){  
    arr3[i]=new int[i+1];   //列的长度每次都变化。每次都要重新申请空间(长度)  
    for(int j=0; j<arr3[i].length; ++j)  
        arr3[i][j]= i+j;  
}  

遍历二维数组:

 public class Array {  
      
        public static void main(String args[]) {  
            int arr[][] = { { 1 }, { 2, 3 }, { 4, 5, 6 }, { 7, 8, 9, 10 } };  
            for (int x = 0; x < arr.length; x++) {  //arr.length 为二维数组中一维数组的个数
                for (int y = 0; y < arr[x].length; y++) {  //aar[x].length 为每一个一维数组中的长度
                    System.out.print(arr[x][y] + "、");  
                }  
                System.out.println("");  
            }  
        }  
    }  


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值