一维数组的使用

最后都变了- 提交于 2020-02-08 05:44:04

一维数组的使用

①一维数组的声明和使用

一维数组的声明方式:

typevar [] 或type [] var;

例如:

inta[];
int[]a1;
doubleb[];
String[]c;//引用类型变量数组

Java语言中声明数组时不能指定其长度(数组中元素的数),例如:inta[5];//非法

//动态初始化:数组声明且为数组元素分配空间与赋值的操作分开进行
int[]arr= newint[3];
arr[0] = 3;
arr[1] = 9;
arr[2] =8;

Stringnames[];
names=newString[3];
names[0]=“钱学森”;
names[1]=“邓稼先”;
names[2]= “袁隆平”;

//静态初始化:在定义数组的同时就为数组元素分配空间并赋值。
int arr[]= newint[]{ 3, 9, 8};int[]arr= {3,9,8};


String names[] = {"李四光","茅以升","华罗庚"}

②如何调用数组指定位置的元素

定义并用运算符new为之分配空间后,才可以引用数组中的每个元素;
数组元素的引用方式:数组名[数组元素下标]
数组元素下标可以是整型常量或整型表达式。如a[3] , b[i] , c[6*i];
数组元素下标从0开始;长度为n的数组合法下标取值范围:0—>n-1
如inta[]=newint[3];可引用的数组元素为a[0]、a[1]、a[2]

每个数组都有一个属性length指明它的长度,例如:a.length指明数组a的长度(元素个数)
数组一旦初始化,其长度是不可变的

③如何获取数组的长度

④如何遍历数组

⑤数组元素的默认初始值
在这里插入图片描述

  •  >数组元素是整型:0
    
  •  > 数组元素是浮点型:0.0
    
  •  > 数组元素是char型:0或'\u0000',而非'0'
    
  •  > 数组元素是boolean型:false
    
  •  > 数组元素是引用数据类型:null(注意与0不同!)
    

⑥数组的内存解析

①到④说明

public class ArrayTest {
	
	public static void main(String[] args) {
		
		//1. 一维数组的声明和初始化
		int num;//声明
		num = 10;//初始化 = 赋值
		int id = 1001;//声明 + 初始化   和上面两行相同
		
		//静态初始化:数组的初始化和数组元素的赋值操作同时进行
		int[] ids;//声明         在这里[]表明数组   int表明元素类型
		ids = new int[]{1001,1002,1003,1004};//数组之间的不同元素用逗号隔开
		
		//动态初始化:数组的初始化和数组元素的赋值操作分开进行
		String[] names = new String[5];
		
		//静态初始化和动态初始化的相同点:左边都先声明数组,右边都对数组进行了初始化(赋值)。
		//静态初始化和动态初始化的区别:静态初始化都指明了元素是什么,动态初始化并没有指明元素是什么。
		
		//以下为错误的写法:
//		int[] arr1 = new int[];
//		int[5] arr2 = new int[5];
//		int[] arr3 = new int[3]{1,2,3};
		
		//也是正确的写法:
		int[] arr4 = {1,2,3,4,5};//类型推断
		
		//总结:数组一旦初始化完成,我们就知晓其长度,长度就确定了。
		
		//2.如何调用数组的指定位置的元素:通过角标(索引、下标)的方式调用。
		//数组的角标(或索引)从0开始的,到数组的长度-1结束。
		names[0] = "小明";//从0开始
		names[1] = "小王";
		names[2] = "小李";
		names[3] = "老王";
		names[4] = "小白";
		//names[5] = "周扬";会报错,无法运行,所以应该在数组的长度-1结束。
		
		//3.如何获取数组的长度。
		//属性:length
		System.out.println(names.length);//5
		System.out.println(ids.length);//4
		
		//4.如何遍历数组
		//方法一
		/*System.out.println(names[0]);
		System.out.println(names[1]);
		System.out.println(names[2]);
		System.out.println(names[3]);
		System.out.println(names[4]);*/
		
		//方法二
		for(int i = 0;i < names.length;i++){//用i来表示索引
			System.out.println(names[i]);




		}
	}
}

⑤数组元素的默认初始值
在这里插入图片描述

  •  >数组元素是整型:0
    
  •  > 数组元素是浮点型:0.0
    
  •  > 数组元素是char型:0或'\u0000',而非'0'
    
  •  > 数组元素是boolean型:false
    
  •  > 数组元素是引用数据类型:null(注意与0不同!)
    
public class ArrayTest {
	
	public static void main(String[] args) {
		//5.数组元素的默认初始化值
		int[] arr = new int[4];
		for(int i = 0;i < arr.length;i++){
			System.out.println(arr[i]);
		}//输出的都是0,虽然没有给他们定义,但其实系统内存空间在数组造出来时就已经自动赋值为0
		System.out.println("**********");//分隔符
		
		short[] arr1 = new short[4];//前后的数据类型要一致
		for(int i = 0;i < arr1.length;i++){
			System.out.println(arr1[i]);
		}
		System.out.println("**********");//分隔符
		float[] arr2 = new float[5];
		for(int i = 0;i < arr2.length;i++){
			System.out.println(arr2[i]);
		}
		
		System.out.println("**********");//分隔符
		char[] arr3 = new char[4];
		for(int i = 0;i < arr3.length;i++){
			System.out.println("----" + arr3[i] + "****");//输出为---- ****表明为空格
		}
		
		if(arr3[0] == 0){//此处是为了检验char输出的是否为0
			System.out.println("你好!");
		}
		
		System.out.println("**********");//分隔符
		boolean[] arr4 = new boolean[5];
		System.out.println(arr4[0]);//输出的是null  意思是空值
		
		System.out.println("**********");//分隔符
		String[] arr5 = new String[5];
		System.out.println(arr5[0]);
		if(arr5[0] == null){//此处是验证boolean输出的是否为null
			System.out.println("北京天气不错!");
		}
	}

}

⑥数组的内存解析

内存的简化结构
在这里插入图片描述

一维数组的内存解析
在这里插入图片描述
此处有点小瑕疵,但是不影响大体。(此处的张学友和刘德华应该处于常量池中,而不应该处于堆中。)

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!