Java中的数组1

Java数组的定义及访问数组中的元素

数组就是存储同一类型若干数据的容器。
定义数组的语法:
数据类型 [] 数组名 = new 数据类型[数组长度];
也可以:
数据类型 数组名[] = new 数据类型[数组长度];
如, 定义一个可以存储5个int类型数据的数组:
int [] data = new int[5];
说明:
(1) data是一个数组名, 其实就是一个变量名, 数组是Java的一种引用数据类型, data数组名中存储的是数组的引用(起始地址)。
(2)int是指数组中存储元素的数据类型, int[]是一种数组类型, 即data变量的数据类型是 int[]。
(3)new运算符在堆区分配一块连续的存储空间, 这块连续的存储空间可以容纳5个int类型的数据, 把这块存储空间的引用保存到data数组名中。
访问数组中的元素
数组中为每个数组元素指定一个索引值, 这个索引值是从0开始的, 通过数组的索引值访问每个元素。
如:data数组有5个元素, 分别为: data[0] , data[1] , data[2] , data[3] , data[4]。
长度为5个数组, 最大下标是: 4
为什么通过索引值可以访问到数组的元素?
在这里插入图片描述

Java数组元素的遍历

import java.util.Arrays;
/**
 * 数组的定义,元素的访问与遍历
 *
 *
 */
public class Test01 {
    
    
	public static void main(String[] args) {
    
    
		//1) 定义一个数组,存储5个int类型数据
		int [] data = new int[5];
		//定义数组,存储10个double类型数据
		double [] data2 = new double[10];
		//定义数组, 存储8个String字符串
		String[] data3  = new String[8];
		
		//2) 给数组元素赋值, 通过索引值访问每个元素
		data[0] = 123;
		data[1] = 123;
		data[2] = 123;
		data[3] = 123;
		data[4] = 123;
		//3) 注意, 数组下标(索引值)不能越界
//		data[5] = 123;  	//java.lang.ArrayIndexOutOfBoundsException: 5  数组索引值越界异常
		
		//4) 打印data数组每个元素的值
		/*System.out.println( data[0] );
		System.out.println( data[1] );
		System.out.println( data[2] );
		System.out.println( data[3] );
		System.out.println( data[4] );*/
		//数组有一个length属性,表示数组的长度
		for( int i = 0 ; i < data.length ;  i++){
    
    
			System.out.println( data[i] );
		}
		
		//5)遍历数组元素时, 还可以使用增强的for循环,也称foreach循环
		for (int xx : data) {
    
    
			//依次把数组中的每个元素赋值给局部变量xx
			System.out.print( xx + "\t");
		}
		System.out.println();
		
		//6)在输出数组的每个元素时,还可以调用Arrays工具类的toString()方法, 可以把数组的元素转换为字符串
		System.out.println( Arrays.toString(data));
		
	}

}

Java数组的静态初始化

import java.util.Arrays;
/**
 * 数组的静态初始化 
 *
 *
 */
public class Test02 {
    
    
	public static void main(String[] args) {
    
    
		//定义数组
		int [] data = new int[8];
		//给数组元素赋值
		data[2]	 = 666;
		//遍历数组的元素
		for(int i = 0 ;  i<data.length; i++){
    
    
			System.out.print( data[i] + "\t");
		}
		System.out.println( );
		/*
		 * 1) 创建了数组后, 系统会给数组进行默认的初始化
		 * 	整数数组,把所有元素默认初始化为0
		 * 	小数数组,把所有元素默认初始化为0.0
		 * 	字符数组,把所有元素默认初始化为码值为0的字符, '\u0000'
		 * 	布尔数组,把所有元素默认初始化为false
		 * 	引用数组,把所有元素默认初始化为null
		 */
		
		//2)在创建数组的同时,可以给数组的元素赋初值, 这叫数组的静态初始化
		//在数组静态初始化时, 不需要指定数组的长度, 数组的长度由初始化元素的个数决定
		int [] mydata = new int[]{
    
    3,6,9,8};
		System.out.println( mydata.length );  		//4
		//数组的静态初始化,可以简化为:
		int [] mydata2 = {
    
    1,4,7};
		for (int xx : mydata2) {
    
    
			System.out.print( xx + "\t");
		}
		System.out.println( );
		
		//3)数组名之间的相互赋值
		data = mydata; 		//把mydata的值赋值给data, mydata存储的是一个数组的引用, 现在mydata和data引用了同一个数组
		System.out.println( Arrays.toString(data )); 		//[3, 6, 9, 8]
		data[0] = 88;
		System.out.println( Arrays.toString(mydata));   	//[88, 6, 9, 8]
		
		//4) 给数组重新赋值
		data = new int[] {
    
    6,6,6}; 		//data指向 了新的数组
		System.out.println( Arrays.toString(data ));
//		data = {8,8,8}; 		//简化的静态初始化,仅用于数组的静态初始化,不能用于数组的赋值
				
	}

}

猜你喜欢

转载自blog.csdn.net/qq_52526676/article/details/126786983