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循环的使用

下一篇,对象

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java中,数组是一种用于存储多个相同类型的数据的数据结构。数组的用法包括声明、初始化、访问和遍历。 1. 声明数组:可以使用以下方式声明数组: - `int[] arr;`:声明一个整型数组 - `String[] names;`:声明一个字符串数组 - `double[] scores;`:声明一个双精度浮点数数组 2. 初始化数组:可以使用以下方式初始化数组: - `arr = new int;`:初始化一个长度为5的整型数组 - `names = new String[]{"Alice", "Bob", "Charlie"};`:初始化一个包含指定元素的字符串数组 - `scores = {98.5, 87.0, 92.5};`:简化形式的初始化数组 3. 访问数组:可以使用索引来访问数组中的元素,索引从0开始计数。例如,`arr`表示数组中的第一个元素,`names`表示数组中的第三个元素。 4. 遍历数组:可以使用循环结构来遍历数组中的所有元素。例如,可以使用for循环来遍历整型数组: ``` for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } ``` 5. 数组拷贝:可以使用`System.arraycopy()`方法或`Arrays.copyOf()`方法来进行数组的拷贝操作。 6. 数组排序:可以使用`Arrays.sort()`方法对数组进行排序。 7. 不规则数组Java中也支持不规则数组,即数组中的元素可以是数组。例如,可以创建一个二维数组`int[][] array`,其中每个元素都是一个一维数组。可以通过循环嵌套来遍历和访问不规则数组中的元素。 以上是Java数组的基本用法。可以根据具体的需求和情况使用数组来存储和处理数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Java——数组的使用](https://blog.csdn.net/qq_59599094/article/details/127728786)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值