一、知识点概要
二、笔记代码
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("二分法未找到");
}
}
}