数组_Java语言基础

一、知识点概要

在这里插入图片描述

二、笔记代码

1.数组的概述

1)、笔记

/*
 * 1.数组的概述:
 * 	>数组的理解:数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行同意管理
 * 	>数组的相关概念:
 * 		>数组名:数组的名字
 * 		>元素:存在数组里面的数据
 * 		>角标/下标/索引
 * 		>数组的长度:即数组元素个数
 * 	>数组的特点:
 * 		>数组是有序排列的
 * 		>数组属于引用型数据类型的变量,但是元素可以是基本数据类型,也可以是引用数据类型
 * 		>创建数组对象的时候,会在内存中开辟一块连续的空间
 * 		>数组的长度一旦确定,就不能在修改
 * 	>数组的分类:
 * 		>按照维数:一维数组,二维数组等等
 * 		>按照元素的类型:基本数据类型的数组,引用数据类型的数组
 * 
 * */

2.一维数组

1)、笔记

/*
 * 2.一维数组
 * 	>一维数组的声明和初始化
 * 		>静态声明和初始化:数组的初始化和数组的元素的赋值同时进行
 * 		>动态声明和初始化:数组的初始化和数组的元素的赋值分开进行
 * 	>调用数组指定位置的元素
 * 		>数组的角标是从0开始,到数组的长度-1结束,调用数组的哪个元素,直接调用它的下标就行
 * 	>获取数组的长度
 * 		>通过length方法来获取长度
 * 	>遍历数组
 * 	>数组的默认初始化值
 * 		>整型数组元素:0
 * 		>浮点型数组元素:0.0
 * 		>char型数组元素:0或者'\u0000'(控制台是一个空格)
 * 		>boolean型数组元素:false
 * 		>引用数据类型数据String元素:null
 * */

2)、代码

public class LinearArrayTest01 {
	public static void main(String[] args) {
		//一维数组的声明和初始化
		//1.静态声明和初始化:数组的初始化和数组的元素的赋值同时进行
		int[] sums=new int[]{1,2,3,4};
		//2.动态声明和初始化:数组的初始化和数组的元素的赋值分开进行
		String[] names=new String[4];
		names[0]="小一";
		names[1]="小二";
		names[2]="小三";
		names[3]="小四";
		
		//调用数组指定位置的元素
		System.out.println(names[2]);
		
		//获取数组的长度
		System.out.println(sums.length);
		
		//遍历数组,i<sums.length表示定义i的值小于数组sums的长度
		for(int i=0;i<sums.length;i++){
			System.out.println(sums[i]);
		}
		
		//数组的默认初始化值
		//1.整型数组元素
		int[] int1=new int[4];
		for(int i=0;i<int1.length;i++){
			System.out.println(int1[i]);
		}
		short[] short1=new short[4];
		for(int i=0;i<short1.length;i++){
			System.out.println(short1[i]);
		}
		//2.浮点型数组元素
		double[] double1=new double[4];
		for(int i=0;i<double1.length;i++){
			System.out.println(double1[i]);
		}
		//3.char型数组元素
		char[] char1=new char[4];
		for(int i=0;i<char1.length;i++){
			System.out.println(char1[i]);
		}
		//4.boolean型数组元素
		boolean[] boolean1=new boolean[4];
		for(int i=0;i<boolean1.length;i++){
			System.out.println(boolean1[i]);
		}
		//5.引用数据类型数据String元素
		String[] string1=new String[4];
		for(int i=0;i<string1.length;i++){
			System.out.println(string1[i]);
		}
	}
}

3.二维数组

1)、笔记

/*
 * 3.二维数组
 * 	>对于二维数组的理解:
 * 		>我们可以看成是一维数组array1又作为另一个一维数组array2的元素存在,从底层的运行机制来看,其实没有多维数组
 * 	>二维数组的声明和初始化
 * 		>静态声明和初始化:数组的初始化和数组的元素的赋值同时进行
 * 		>动态声明和初始化:数组的初始化和数组的元素的赋值分开进行
 * 	>调用数组指定位置的元素
 * 		>数组的角标是从0开始,到数组的长度-1结束,调用数组的哪个元素,直接调用它的下标就行
 * 	>获取数组的长度
 * 		>通过length方法来获取长度
 * 	>遍历数组
 * 	>数组的默认初始化值
 *		>二维数组分为外层元素和内层元素
 *			>int[][] arr=new int[2][2];
 *			>外层元素:arr[0];arr[1]等等
 *			>内层元素:arr[0][0];arr[1][2]等等
 *		>针对于:int[][] arr = new int[4][3]
 *			>外层的初始化值为:地址值
 *			>内层的元素初始化值为:与一维数组的初始化值一样
 *		>针对于:int[][] arr = new int[4][]
 *			>外层的初始化值为:null
 *			>内层的元素初始化值为:不能调用,否则报错
 * */

2)、代码

public class TwoArrayTest02 {
	public static void main(String[] args) {
		//二维数组的声明和初始化
		//1.静态初始化
		int[][] int1=new int[][]{{1,2,3},{3,2,7},{7,9,9}};
		//2.动态初始化(可以理解为一维数组里面套一维数组)
		String[][] String1=new String[3][2];
		//另外的正确写法
		//String[][] String2=new String[2][];
		//String[] String3[]=new String[][]{}
		//int[][] int1={{1,2,3},{3,2,7},{7,9,9}};
		String1[0][0]="小一";
		String1[0][1]="小二";
		String1[1][0]="小三";
		String1[1][1]="小四";
		String1[2][0]="小五";
		String1[2][1]="小六";
		
		//调用数组指定位置的元素
		System.out.println(String1[1][1]);
		//如果获取String2指定位置上的数值没有的时候,那么就会报错java.lang.NullPointerException(空指针异常)
		//System.out.println(String2[1][2]);
		
		//获取数组的长度
		System.out.println(String1.length);//直接获取里面有多少个一维数组
		System.out.println(String1[0].length);//直接获取下标为0的数组的长度
		
		//遍历数组
		for(int i=0;i<String1.length;i++){
			for (int j = 0; j < String1[i].length; j++) {
				System.out.println(String1[i][j]);
			}
		}
		
		//数组的默认初始化值
		String[][] String2=new String[3][2];
		String[][] String3=new String[2][];
		
		System.out.println(String2[0]);
		System.out.println(String2[0][0]);
		
		System.out.println(String3[0]);
		//System.out.println(String3[0][0]);
	}
}

4.数组工具

1)、笔记

/*
 * 4.操作数组的工具类Arrays,举例常用的方法,其他的可以去API里面查看
 * 	>boolean equals(int[] a,int[] b):判断两个数组是否相等
 * 	>String toString(int[] a):输出数组信息
 * 	>void fill(int[] a,int val):将指定值填充到数组之中
 * 	>void sort(int[] a):对数组进行排序
 * 	>int binarySearch(int[] a,int key):进行二分法查找
 * 
 * */

2)、代码

public class ArraysTest03 {
	public static void main(String[] args) {
		//boolean equals(int[] a,int[] b):判断两个数组是否相等
		int[] int1=new int[]{1,3,4,9,7,10};
		int[] int2=new int[]{8,3,11,9,7,10};
		System.out.println(Arrays.equals(int1, int2));
		
		//String toString(int[] a):输出数组信息
		System.out.println(Arrays.toString(int1));
		
		//void fill(int[] a,int val):将指定值填充到数组之中
		Arrays.fill(int1, 11);
		System.out.println(Arrays.toString(int1));
		
		//void sort(int[] a):对数组进行排序
		Arrays.sort(int2);
		System.out.println(Arrays.toString(int2));
		
		//int binarySearch(int[] a,int key):进行二分法查找(但是没有找到的话,会输出一个负数)
		int index=Arrays.binarySearch(int2, 10);
		if (index>0) {
			System.out.println(index);
		} else {
			System.out.println("二分法未找到");
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值