Java —— 数组

Java —— 数组(arrays)

1.一维数组的定义与使用方法

数组:数组是相同类型数据的有序结合。
定义:数据类型[] 数组名称;或 数据类型 数组名称[];  在引用数据类型时,只声明不赋值
	的话,其存在默认值,为null;
	eg: char[] arr; 或 char arr[];
特点:
	(1)定长
	(2)数组内部只能有一个数据类型
	(3)元素有次序
	(4)数组本身来说是对象,在堆中储存
	(5)数组可以储存单一的任意类型数据

初始化
动态初始化:数组的定义,数组元素分配空间,赋值;分三部或两部进行

数据类型[] 数组名 = new 数据类型[长度];
元素为引用类型的数组,其每一个元素都需要实例化
Person[] people;			//声明数组
people = new People[3];		//创建数组
people[0] = new Person();	//数组元素实例化
people[1] = new Person();
people[2] = new Person();

静态初始化:一步完成数组的定义,元素空间分配以及赋值;

数据类型[] 数组名 = new 数据类型[]{数值1,数值2,数值3,... ... }; 	
int[] arr = new int[]{2,4,6,... ...};
数据类型[] 数组名 = {数值1,数值2,数值3,... ...}
int[] arr = {2,4,6,... ...};
*对于返回值类型为数组的方法来说可以采用:
return new int[3]; 或 return new int[]{1,2,3};
不可以采用 return {1,2,3};不能脱离数组的声明,{1,2,3}不能返回一个数组对象

错误的初始化

~~int[] arr = new int[4]{1,2,3,4}~~ 

默认值:

byte , short , int , long:默认值为 0 ;
char :默认值为编码为 0 的字符 ,'\u0000';
String (引用数据类型): 默认值为 null;
float , double :默认值为 0.0 ;
boolean :默认值为 false;

数组内存
数组的索引&遍历

		int[] arr = new int[5];
		for(int i=0;i<5;i++){
			arr[i] = i;
			System.out.print("*"+arr[i]);
		}
		System.out.println(Arrays.toString(arr));
	//结果为 [0, 1, 2, 3, 4] ,* Arrays.toString(数组名) 为打印数组的方法
		int[] arr = new int[]{4,6,8,9,31};
		for(int i:arr){
			System.out.print(" "+i);
		}
	// 增强for循环(for-each)打印時,i表示的是元素,不是下标;System.out.print(" "+arr[i]);错误

**增强for循环打印時,i表示的是元素,不是下标;System.out.print(" "+arr[i]);错误

2. Arrays工具类

import java.util.Arrays;

public class Arrays_1 {
	public static void main(String[] args){
		int[] arr = new int[]{0,4,6,8,0};
		int[] arr1 = new int[]{1,4,6,8,1};
		int[] arr2 = new int[]{0,4,6,8,0};
	
		//打印数组——Arrays。toString(arr)
		System.out.println(Arrays.toString(arr));
		System.out.println();
		//比较两个数组是否相同,两个数组比较
		System.out.println(Arrays.equals(arr,arr1));
		System.out.println(Arrays.equals(arr,arr2));
		
		//数组排序(升序)
		Arrays.sort(arr);	//仅能排序,不能打印
		System.out.println(Arrays.toString(arr));
		
		
	}
}

3. 二维数组

初始化
动态初始化

	数据类型[][] 数组明 = new 数据类型[一维][二维];
	int[][] arr = new int[2][3];
	arr[0][0] = 1;
	arr[0][1] = 1;
	arr[0][2] = 1;
	arr[1][0] = 1;
	arr[1][1] = 1;
	arr[1][2] = 1;
	数据类型[][] 数组明 = new 数据类型[一维][];
	内层数组可以自己创建,也可以参照一维数组创建方式;
	int[][] arr = new int[3][];
	arr[0] = new int[2];
	arr[1] = new int[]{2,3};
	arr[2] = new int[]{2,4,7};
	arr[0][0] = 2;
	arr[0][1] = 4;

在这里插入图片描述
二维数组的遍历

int[][] arr = new int[2][];
		arr[0] = new int[]{2,5,7,2,1};
		arr[1] = new int[]{4,7,4,32};
		int[][] arr1 = {{1,3,5},{34,6,7,9},{23,1},{2,3}};
		//普通for循环嵌套普通for循环
		for(int i=0;i<arr.length;i++){
			for(int j=0;j<arr[i].length;j++){
				System.out.print(arr[i][j]+",");
			}
		}
		System.out.println("+++++++++++");
		//普通for循环嵌套增强for循环
		for(int i=0;i<arr.length;i++){
			for(int j:arr[i]){
				System.out.print(j+",");
			}
		}
		System.out.println("+++++++++++");
		//增强for循环嵌套增强for循环
		for(int[] i:arr){
			for(int j:i){
				System.out.print(j+",");
			}
		}
		System.out.println("+++++++++++");
		//增强for循环嵌套普通for循环
		for(int[] i:arr1){
			for(int j=0;j<i.length;j++){
				System.out.print(i[j]+",");
			}
		}
	上述四种遍历的结果
	2,5,7,2,1,4,7,4,32,+++++++++++
	2,5,7,2,1,4,7,4,32,+++++++++++
	2,5,7,2,1,4,7,4,32,+++++++++++
	1,3,5,34,6,7,9,23,1,2,3,
	
	**当包含for-each時,需要注意两点
		1.输出结果和下脚标的问题
		2.增强for循环的使用
发布了26 篇原创文章 · 获赞 25 · 访问量 2827
App 阅读领勋章
微信扫码 下载APP
阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 游动-白 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览