栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA数组 数组工具类 二维数组

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA数组 数组工具类 二维数组

文章目录
  • 概念
  • 1. 数组的创建方式
    • 1.1 静态创建
    • 1.2 动态创建
  • 2. 数组创建的过程
  • 3. 数组的特性
  • 2. 数组的遍历
  • 5.数组的工具类Arrays
    • 5.1.toString(数组名):
    • 5.2.copyOf(要复制的原数组,新数组的长度):
    • 5.3.sort(数组名):
  • 3 拓展之二维数组
    • 3.1 概念
    • 3.2 创建二维数组
    • 3.3 遍历二维数组
    • 3.4 打印二维数组中的数据

概念

数组Array,标志是[ ] ,用于储存多个相同类型数据的集合
想要获取数组中的元素值,可以通过脚标(下标)来获取
数组下标是从0开始的,下标的最大值是数组的长度减1

1. 数组的创建方式 1.1 静态创建

int[] a = {1,2,3,4,5};
int[] a = new int[]{1,2,3,4,5};

1.2 动态创建

int[] a = new int[5];

2. 数组创建的过程

1.在内存中开辟一块连续的内存空间,用来存放多个相同类型的数据
2.给数组完成初始化的过程,给每个元素赋予数组对应类型的默认值,比如int的默认值是0
3.数组完成初始化后会分配一个唯一的地址值
4.把唯一的地址值交给数组的引用类型变量【数组名】来保存
5.如果想要操作数组中的元素,可以根据变量保存的地址找到数组,然后根据下标来操作数组的具体元素
数组名保存的是数组的地址值,不是数组中每一个具体的元素,数组名是一个引用类型的变量

3. 数组的特性

1.我们是通过数组的下标来操作数组中的元素的,数组下标从0开始,最大下标是数组的长度-1
数组的下标是我们能够进行操作数组的唯一的手段
不能访问不属于这个数组的下标,否则会数组下标越界异常
2.数组的长度我们可以通过“数组名.length”来获取
数组一旦创建,长度不可改变
如果想要增加或者是删除数组中的元素,需要创建新长度的数组,无法改变原数组的长度

2. 数组的遍历

1.如果只是想查看数组中有哪些元素,直接使用System.out.println(Arrays.toString(方法名));就可以
2.如果想要拿到数组中的一个个的具体元素,或者是对数组中的元素做进一步的操作,就需要对数组进行遍历
3.遍历:把数组中的所有元素,从头到尾逐个“过一遍”
4.通过循环遍历数组,所以循环中的循环变量代表的是数组的下标

public class ReviewDemo {
	public static void main(String[] args) {
		int[] a = new int[10];
		for(int i = 0;i 
5.数组的工具类Arrays 
5.1.toString(数组名): 

用来查看当前数组的所有具体元素
除了char类型的数组底层做了处理以外,其他任何类型的数组,想要查看数组的具体元素,都必须使用此方法
如果不使用这个方法,直接打印数组名,打印的是数组的地址值

5.2.copyOf(要复制的原数组,新数组的长度):

用来进行数组的普通复制/扩容/缩容
如果新数组的长度大于原数组的长度–数组的扩容,不够的位置还是默认值
如果新数组的长度小于原数组的长度–数组的缩容,类似于原数组的截取
如果新数组的长度等于原数组的长度–数组的普通复制
注意:不管是以上哪种操作,都不是操作原数组,而是创建了一个新的数组

package cn.tedu.array;

import java.util.Arrays;


public class TestArraysCopyOf {
	public static void main(String[] args) {
		//1.创建数组
		int[] from = {1,2,3,4,5};//数组一旦创建,长度不可改变
		
		//2.1 数组的普通复制
		
		int[] to = Arrays.copyOf(from, 5);
		System.out.println(Arrays.toString(to));
		
		//2.2数组的扩容
		
		int[] to2 = Arrays.copyOf(from, 10);
		System.out.println(Arrays.toString(to2));
		
		//2.3数组的缩容
		
		int[] to3 = Arrays.copyOf(from, 3);
		System.out.println(Arrays.toString(to3));
		
		//2.4指定首尾截取原数组中的元素
		
		int[] to4 = Arrays.copyOfRange(from, 2, 4);
		System.out.println(Arrays.toString(to4));
	}
}

5.3.sort(数组名):

利用优化后的快速排序算法对数组进行排序,这个排序算法是直接对原数组做修改的

package cn.tedu.array;

import java.util.Arrays;


public class TestArraysSort {
	public static void main(String[] args) {
		//1.创建无序数组
		int[] a = {21,96,75,23,25};
		
		//底层使用的排序算法是进行优化后的快速排序算法
		Arrays.sort(a);//对无序数组进行直接排序
		System.out.println(Arrays.toString(a));
	}
}

3 拓展之二维数组 3.1 概念

存放数组的数组,也就是说数组里存的还是数组的数据形式

3.2 创建二维数组

int[][] a = {undefined{3,5},{7,9},{1,2}};
–创建外部数组,长度是3
–给每个外部数组的位置创建内部数组,每个内部数组的长度是2
–给每个内部数组进行数据初始化
–二维数组生成唯一的地址值
–把地址值交给引用类型变量a来保存

3.3 遍历二维数组

for (int i = 0; i < a.length; i++) {//遍历外部数组
for (int j = 0; j < a[i].length; j++) {//遍历内部数组
System.out.println(a[i][j]);//依次打印二维数组中每个元素的值
}
}

3.4 打印二维数组中的数据
package cn.tedu.array;

import java.util.Arrays;


public class TestArrays2 {
	public static void main(String[] args) {
		//1.创建二维数组
		//    3      5    
		//a[0][0] a[0][1]
		//    7       9
		//[1][0] a[1][1] 
		//    1       2      3
		//a[2][0] a[2][1] a[2][2]
		int[][] a = {{3,5},{7,9},{1,2,3}};
		
		//2.遍历二维数组
		for (int i = 0; i < a.length; i++) {
//			System.out.println(Arrays.toString(a[i]));
			for (int j = 0; j < a[i].length; j++) {
				//a[i][j]--根据外部数组的下标和内部数组的下标定位具体的元素
				System.out.print(a[i][j]);
			}
			System.out.println();
		}
	}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/439889.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号