Java 基础 二维数组

二维数组
二维数组的定义

	方式一:元素类型[][] 数组名称;

	方式二:元素类型 数组名称[][];
	推荐使用方式一

数组的初始化

	静态初始化:

	语法:元素类型[][] 数组名称 = new 元素类型[][]{{一维数组1,一维数组2,一维数组3....};
	简化:元素类型[][] 数组名称 =m{{一维数组1,一维数组2,一维数组3....};

	举例:int[][] arr = new int[][]{{2,3},{5,2,1},{10,45,22,54}};
	      int[][] arr = {{2,3},{5,2,1},{10,45,22,54}};

	动态初始化:

	语法:元素类型[][] 数组名称 = new 元素类型[二维数组的长度][一维数组的长度]
	举例:int[][] arr = new int[3][4];
	说明:定义一个数组arr,二维数组中一维数组的个数为3个,每个一维数组中元素的个数为4个

二维数组的访问

通过下标访问二维的指定元素

class TwiceArrayDemo01 
{
	public static void main(String[] args) 
	{
		int[][] arr = new int[3][4];

		System.out.println(arr);//[[I@15db9742
		System.out.println(arr.length);//3
		System.out.println(arr[0]);//[I@6d06d69c
		System.out.println(arr[0].length);//4
		System.out.println(Arrays.toString(arr));//[[I@6d06d69c, [I@7852e922, [I@4e25154f]
		System.out.println(Arrays.toString(arr[0]));//[0, 0, 0, 0]

		/*
		[[I@15db9742
		3
		[I@6d06d69c
		4
		[[I@6d06d69c, [I@7852e922, [I@4e25154f]
		[0, 0, 0, 0]
		*/
	}
}

遍历二维数组

//常见的操作:遍历二维数组
class TwiceArrayDemo02 
{
	public static void main(String[] args) 
	{
		//如果二维数组中一维数组的元素个数不确定
		//int[][] arr = new int[3][];

		int[][] arr = new int[][]{{2,3},{5,2,1},{10,45,22,54}};

		//遍历arr
		for(int i = 0;i < arr.length;i++) {
			System.out.println(arr[i]);
		}

		//赋值:给arr中的第1个元素修改值
		arr[1] = new int[2];

		//给arr[0]中的第0个元素修改值
		arr[0][0] = 10;

		//遍历arr[0]
		for(int i = 0;i < arr[0].length;i++) {
			System.out.println(arr[0][i]);
		}

		//二维数组的遍历:嵌套for循环
		//简单for循环
		for(int i = 0;i < arr.length;i++) {
			int[] subArr = arr[i];
			for(int j = 0;j < subArr.length;j++) {
				System.out.println(subArr[j]);
			}
		}

		//增强for循环
		for(int[] subArr1:arr) {
			for(int n:subArr1) {
				System.out.println(n);
			}
		}
	}
}

拓展:
Arrays工具类

作用:主要用于对数组进行排序,查找,填充,比较等的操作
Arrays工具类存在于java.util包下,所以使用的第一步就是导包:import java.util.Arrays;

注意1:如果在同一个Java文件中同时使用Scanner和Arrays,则可以向如下方式导包:
	  import java.util.Scanner;
      import java.util.Arrays;

	  或者简写为:* 所有的类
      import java.util.*;

注意2:但凡是工具类,类中的方法全部是静态的,方便调用
	  调用语法:类名.方法名(实参列表)

代码实现:

//演示Arrays工具类的使用
package com.qf.day07;

import java.util.Arrays;

/*
 * Arrays工具类的使用
 * 1 二分查找
 * 2 排序
 * 3 复制
 * 4 填充 
 * 5 把数组转成字符串
 *
 * 
 */

public class Demo1 {
	public static void main(String[] args) {
	//	binarySearch();
		//sort();
		//copy();
		//fill();
		toStr();
	}
	//binarySearch 二分查找
	public static void binarySearch() {
		int[] arr=new int[] {5,8,10,20,65,100};	
		int result=Arrays.binarySearch(arr,22);
		if(result>=0) {
			System.out.println("找到了");
		}else {
			System.out.println("没找到 ");
		}
	}
	//排序
	public static void sort() {
		int[] arr=new int[] {12,8,100,2,9};
		Arrays.sort(arr);
		System.out.println("排序之后:");
		for(int i=0;i<arr.length;i++) {
			System.out.print(arr[i]+" ");	
		}	
	}
	//复制
	public static void copy() {
		int[] arr=new int[] {12,8,100,2,9};
		int[] arr2=Arrays.copyOf(arr, arr.length);
		for(int i=0;i<arr2.length;i++) {
			System.out.println(arr2[i]);
		}
	}
	//填充
	public static void fill() {
		int[] arr=new int[] {12,8,100,2,9};
		Arrays.fill(arr, 10);
		for(int i=0;i<arr.length;i++) {
			System.out.println(arr[i]);
		}
	}
	//把数组转成字符串
	public static void toStr() {
		int[] arr=new int[] {12,8,100,2,9};
		String s=Arrays.toString(arr);
		System.out.println(s);
	}
	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值