java基础复习day06(数组)

数组

1.概念

存储多个相同类型元素的容器

2.数组的定义

1.数据类型[] 数组名=new 数据类型[数组长度/元素个数]
	int[] arr =new int[];//定义出长度为3的整形数组arr(指定长度)
	分为声明和初始化俩个过程,通过数组的地址值可以找到对应的数组容器,数组内部自动对存储的元素进行编号(从0开始),通过数组地址值和元素编号就可以唯一确定数组中的元素---数组名[编号](编号---下标)
2.数据类型[] 数组名=new 数据类型[]{元素值1,元素值2,……};
	int[] arr=new int[]{1,2,3};//给定元素值,长度已经确定,前面不能再指定长度值
	支持分为声明和初始化俩个过程:
		声明:int[] arr;
		初始化:arr=new int[]{1,2,3};
3.数据类型[] 数组名={元素值1,元素值2,……};
	int[] arr={1,2,3};//给定元素值,长度已经确定

new关键字—在内存开辟新空间

数组内存地址值[|@659e0bfd:↓↓↓
在这里插入图片描述

  /*
  	数组的定义格式  
  */
  class ArrayDemo{ public static void main(String[] args) {
  //1.定义格式
  	int[] arr=new int[2];
  	//给数组的第二个元素进行赋值
  	arr[1]=10;
 	 //声明
  	int[] arr1;
  	//初始化
 	 arr1=new int[3];
  	//输出数组名---数组地址值
 	 System.out.println(arr);//[|@659e0bfd
  	//输出数组的第二个元素的值
  	System.out.println(arr[1]);
  //2.定义格式
  	int[] arr=new int[]{1,2,3};
  	//声明
 	int[] arr1;
 	//初始化
  	arr1=new int[]{3,5};*/
  	//3.定义格式
  	//底层会自动开辟空间可以存储数据
  	int[] arr={1,2,3};
  	//声明
  	int[] arr1;
  	//初始化
  	//底层没有开辟空间所以不能存储数据
  	arr1={5,6};//编译出错
  }
  }

3.java内存分区(特别重要)

栈:存储变量(暂时),栈中存储的数据使用完毕时立刻销毁
堆:存储对象,存储的对象如果不再使用会在某个时刻通过系统进行回收方法区(面向对象讲)          
系统默认初始值
(byte、short、int---0)、(char---'\u0000'    \u代表编码使用的码表是utf-16)、(long---0L)、(float---0.0F)、(double---0.0)、(boolean---false)、(所有引用类数据型---null)

int[] arr =new int[3]:栈堆图↓
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.数组的应用

数组的遍历

遍历—依次输出数组元素值 数组名[下标]—确定任意数组元素(for循环、增强for循环、Arrays.toString(arr))

  /*
  数组遍历
  */
  import java.util.Arrays; 
  class ArrayBianLiDemo{ 
  public static void main(String[] args) {
  //给定数组
  int[] arr={1,7,9,3,6,2};
  //通过普通for循环遍历数组元素
  //数组长度---数组名.length
  for(int i=0;i<arr.length;i++){ 
    System.out.println(arr[i]);
    arr[i]+=2;
  }
  //增强for循环
  //(元素类型变量名:遍历的数组的名称)
  //把数组元素的值拷贝到变量身上
  for(int i:arr){
  	//System.out.println(i);
  	i+=2;
  }
  for(int i:arr){
 	 System.out.println(i);
  }
  //自动把数组元素内容进行拼接,拼接成一个字符串输出(展示结果)
  System.out.println(Arrays.toString(arr));
  }
  }
求出数组元素中的最大值/最小值
/*
最值
*/
class ArrayMax{ 
public static void main(String[] args) { 
	int[] arr={3,5,7,2,9,1};
	//提供参照物---默认选第一个元素
	int max=arr[0];
	//for循环---依次比较
	for(int i=1;i<arr.length;i++){
	//和所有的元素进行比较
		if(max<arr[i]){
	//把较大的元素值赋值给max
			max=arr[i];
		}
	}
System.out.println(max);
}
}
选择排序
冒泡排序
二分(折半查找)
数组扩容

5.二维数组

存储的数组元素是一维数组的数组

定义格式

1.数据类型[][] 数组名=new 数据类型[二维数组长度][一维数组长度];
	int[][] arr=new int[3][2];//定义3个长度为2的一维数组   指定长度
2.数据类型[][] 数组名=new 数据类型[二维数组长度][];
	int[][] arr=new int[3][];//代表声明了3个一维数组
	//给定初始值
	arr[0]=new int[3];//可以 arr[1]=new int[]{1,2,3,4};//可以
	arr[2]={4,5,6};//不可以
3.数据类型[][] 数组名={{元素值1,元素值2,…},{元素值1,元素值2,…}
	,{元素值1,元素值2,…},…};
	int[][] arr={{1,2},{3,4,5}};//指定值确定长度 

二维数组内存图

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值