JAVA基础(五)--数组

1.堆内存和栈内存的区别
在这里插入图片描述
2.数组的内存图解
在这里插入图片描述
3.两个栈内存操作同一个堆内存,无论是哪个站内存的操作都会改变堆内存的数据
在这里插入图片描述
4.数组的基本操作

/*
 * 数组
 * */
public class ShuzuDemo1 {

	public static void main(String[] args) {

		int[] arr = {11,22,33,44,55} ;
		printArr(arr) ;
		System.out.println(getMax(arr));
		reverse(arr) ;
		printArr(arr) ;
		System.out.println(getIndex(arr,11)); ;
		
	}

	// 打印数组
	public static void printArr(int[] arr){
		for(int x = 0 ; x<arr.length ; x++){
			System.out.print(arr[x]+"\t");
		}
	}
	// 求数组中的最大值
	public static int getMax(int[] arr){
		int max = arr[0] ;
		for (int x = 1 ;x<arr.length;x++){
			if(max < arr[x]){
				max = arr[x] ;
			}
		}
		return max ;
	}
	
	// 数组反转
	public static void reverse(int[] arr){
		/*
		// 第一组数据交换
		int tmp = arr[0] ;
		arr[0] = arr[arr.length-1] ;
		arr[arr.length-1] = tmp ;
		// 第二组数据交换
		int tmp1 = arr[1] ;
		arr[1] = arr[arr.length-1-1] ;
		arr[arr.length-1-1] = tmp1 ;
		*/
		for(int x =0 ;x<arr.length/2;x++){ // 注意:在数组反转的时候数组长度需要除以2
			int tmpx = arr[x] ;
			arr[x] = arr[arr.length-1-x] ;
			arr[arr.length-1-x] = tmpx ;
		}
	}
	
	// 返回某个数据第一次出现的索引值
	public static int getIndex(int[] arr , int value){
		int index = -1 ; // 为了确保for循环和if判断不出错,即一定会有个返回值,所以提前定义一个index
		for(int x = 0 ; x<arr.length;x++){
			if(value == arr[x]){
				index = x ;
				break ;
			}
		}
		return index ;
	}
}

5.列固定二维数据内存图解
在这里插入图片描述
列变化二维数组
在这里插入图片描述
静态二维数据内存图解
在这里插入图片描述
6.二维数组遍历

/*
 * 二维数组:
 * 格式1:数据类型[][] 数组名 = new 数据类型[m][n] 
 * 		int[][] arr = new int[3][2]
 * 		m表示有几个一维数组 n表示每个一维数组中有几个元素
 * 
 * 格式2:数据类型[][] 数组名 = new 数据类型[m][]
 * 		int[][] arr = new int[2][]
 * 		arr[0] = new int[2] ;
 * 		arr[1] = new int[4] ;
 * 		m表示一维数组的个数,每个一维数组中的个数是不确定的,可以自己定义
 * 
 * 格式3:数据类型[][] 数组名 = {{元素1,元素2,元素3},{元素1,元素2}}
 * 		int[][] arr = {{1,2,3},{4,5}}
 * */
public class ShuzuDemo2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[][] arr = {{1,2,3},{4,5},{6}} ;
		printArr(arr) ;
	}

	// 二维数组遍历
	public static void printArr(int[][] arr){
		for(int x = 0 ; x<arr.length;x++){
			for(int y = 0 ;y<arr[x].length;y++){
				System.out.print(arr[x][y]+"\t");			
			}
			System.out.println();
		}
	}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值