欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

一维数组的使用

程序员文章站 2024-03-04 15:45:11
...

一维数组的使用

①一维数组的声明和使用

一维数组的声明方式:

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("北京天气不错!");
		}
	}

}

⑥数组的内存解析

内存的简化结构
一维数组的使用

一维数组的内存解析
一维数组的使用
此处有点小瑕疵,但是不影响大体。(此处的张学友和刘德华应该处于常量池中,而不应该处于堆中。)

相关标签: java