5.Java数组(一维数组与二维数组)

数组

一维数组:储存多个变量的容器

数据类型[ ] 数组名={ }

数据类型[ ] 数组名=[ ]

int [ ] arr=new int[3]

public class Test1 {
    public static void main(String[] args) {
    int[] []arr=new int [3];//创建一维数组
    
    arr[0]=12;//数组元素赋值
    arr[1]=31;
    ...
    int a=arr[0];//赋值
​
        System.out.println(arr[0]);
        System.out.println(a);
    }
​
​
}

二维数组:数组元素为一维数组

数据类型[ ] [ ] 数组名={ }

数据类型[ ] [ ] 数组名=[ ] [ ]

int [ ] [ ] arr=new int[3] [2]

//3表示二维数组的长度

//2表示二维数组里每一个一维数组的长度

public class Test1 {
    public static void main(String[] args) {
    int[] []arr=new int [3][2];
    arr[0][0]=12;
    arr[0][1]=31;
    int a=arr[0][1];//赋值
​
    arr[1][0]=14;
    arr[1][1]=37;
​
    arr[2][0]=17;
    arr[2][1]=38;
​
        System.out.println(arr[0][0]);
        System.out.println(a);
    }
​
​
}

内存分配

在Java虚拟机中,执行Java程序过程中,把内存分为不同的数据区域

 

栈:存放局部变量

堆:存放成员变量(new出来的东西)

画出内存图

public class Test { 
​
   public static void leftshift(int i, int j) {
​
       i+=j;
​
    }
​
    public static void main(String[] args) {
​
       int i = 4, j = 2;
​
       leftshift(i, j); 
​
       System.out.println(i);
​
   }
​
}

数组中常见小问题

a:ArrayIndexOutOfBoundsException:数组索引越界异常
        原因:你访问了不存在的索引。
b:NullPointerException:空指针异常
        原因:数组已经不在指向堆内存了。而你还用数组名去访问元素。

练习:

1、for循环(打印出100以内,能被3整除的所有数)

class A {
    public static void main(String[] args) {
    for(int i=0;i<=100;i++){
    if(i%3==0){
    System.out.println("被3整除的数:"+i);
    }
    }
        
    }
}

2、将下面的数组元素 反向打印 int[] arr = {11,22,33,44,55}; 打印的结果为: [55,44,33,22,11]

class B {
    public static void main(String[] args) {
        int[] arr={11,22,33,44,55};
        for(int i=arr.length-1;i>=0;i--){
        System.out.println(arr [i]);
        }
​
   }
}

3、将下面的数组元素前后互换 [11, 32,55, 47,79,23] 置换后的数组元素为: [23, 79, 47, 55, 32, 11]

class B {
    public static void main(String[] args) {
        int[] arr={11,32,55,47,55,79,23};
        int j=0;
        for(int i=0;i<arr.length/2;i++){
             j=arr[i];
             arr[i]=arr[arr.length-1-i];
            arr[arr.length-1-i]=j;
​
        }
    for(int i=0;i<arr.length;i++){
        System.out.print(arr[i]+",");
    }
    }
}

4、在数组中 查询数据55第一次出现的位置,打印第一次出现的位置 [11, 32,55, 47,55, 79,23]

class B {
    public static void main(String[] args) {
        int[] arr={11,32,55,47,55,79,23};
        for(int i=0;i<arr.length;i++){
            if(arr[i]==55 ){
            System.out.println("第一次出现的位置是:"+i);
            break;
            }
        }
​
    }
}

5、编写方法,获取到数组中最大的元素,返回该元素的值

class C {
	public static void main(String[] args) {
		int arr[]={11,32,55,47,55,79,23};

		get(arr);
		System.out.println(get(arr));
	}
	

	public static int get(int arr[]){
		int j=arr[0];
		for(int i=1;i<arr.length;i++){
		if(j<arr[i]){
		j=arr[i];
		}

		}
return 	j;
	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值