数组
1.含义:
就是用来存储同一种数据类型的容器!
(类型必须一致,否则数组定义的时候,编译通过不了)
2.定义格式:
a.数据类型[] 数组名称;
举例:int [] arr; 定义了一个int类型的数组arr变量
b.数据类型 数组名称 [];
举例:int arr [];定义了一个int类型的arr数组变量;
3.数组的初始化:
动态初始化
静态初始化
4.动态初始化:
我们定义了数组的长度,数组的元素由系统默认初始化!(懂了,里面的元素是定的)
数据类型 [] 数组名称 = new 数据类型 [数组长度];
int [] arr =new int [3];
数据类型 数组名称 [] =new 数据类型[数组长度];
int arr []=new int [3];
5.静态初始化:
给定了数组的元素的内容,由系统指定数组的长度
格式:数据类型 [] 数组名称=new 数据类型[]{元素1,元素2,元素3...};(推荐)
数据类型 数组名称 []=new 数据类型[]{元素1,元素2,元素3...};
简写格式:数据类型[] 数组名称={元素1,元素2,元素3...};
int [] arr={1,2,3,4,5,6};
注意:不能动静初始化(要莫动态初始化,要莫静态初始化)
6.解释说明格式:
=左边:int:里面存储的都是int类型
[]:一维数组
arr:数组名称(符号标识符的规则)
=右边:new:创建对象
int:int类型的元素
[]:一维数组
4:数组的长度
7.特点:
a.数组的长度是固定的
b.存储的类型必须是同一种类型
c.数组中存储的元素可以引用类型,也可以存储基本数据类型
数组的注意问题
1.数组角标越界异常:ArrayIndexOutOfBoundsException
出现原因:访问了数组中不存在的索引值,索引值是非法的,大于或者等于数组的长度,索引值为负.
解决方案:及时检查错误,然后更新代码
2.空指针异常:NullPointerException 数组是引用类型,引用类型的默认值是null(空对象)
出现原因:在数组中的,数组对象已经为null,还要访问里面的元素
在后期可能会使用某些类的功能的时候,但是这个类的对象已经为null。
解决方案:(在idea中,使用断点来调试程序!debug)
在某段代码中,如果出现空指针,在使用该对象的时候,进行非空判断。
数组的遍历
1.含义:
就是将数组的元素一一获取并输出
2.举例:(就是将一堆元素排列出来,并且带上括号跟逗号)
public static void printArray2(int[] arr){
//输出一个"["
System.out.print("{") ;
//遍历数组,获取元素内容
for(int x = 0 ; x < arr.length ; x ++){
//获取到了
//判断x是否能够取到最大索引值:arr.length-1
if(x==arr.length-1){
//获取最大索引值对应最后一个元素
System.out.println(arr[x]+"}") ;
}else{
//不是最后一个元素,中间的元素
//元素1, 元素2, ..
System.out.print(arr[x]+", ") ;
}
}
}
/*
定义一个遍历数组的功能
两个明确
1)明确返回值类型:void 代替
2)明确参数类型以及参数个数
int[] 一个参数
*/
public static void printArray(int[] arr){
for(int x = 0 ; x < arr.length ; x ++ ){
System.out.println(arr[x]) ;
}
}
}
数组的最值
1.含义:
给定一个数组,静态初始化,获取数组中的最大值.
2.简述:
怎么用数组来整出最值呢,就是先创建一个中间数,拿这个中间数,跟其他的数做比较,比较完之后,从新赋值,不断比,找出最值.
3.举例:
//定义一个求最小值的方法
public static int getMin(int[] arr){
//定一个参照物:它是最小值
int min = arr[0] ;
for(int x = 1; x < arr.length ; x ++){
if(arr[x] < min){
min = arr[x] ;
}
}
return min ;
}
/*
定义一个求最大值的方法
两个明确
1)明确返回值类型:int
2)明确参数类型以及参数个数
int[] 1个参数
*/
public static int getMax(int[] arr){
//定义有一个参照物
int max = arr[0] ;
//遍历其他元素
for(int x = 1 ; x < arr.length ; x ++){
if(arr[x] > max){
max = arr[x] ;
}
}
return max ;
}
}
main方法没写,你们将就着看
元素逆序
数组中的基本元素查找法
冒泡
1.含义:
两两比较,然后把最大的值依次往后放。
2.for(int x=0;x<arr.length-1;x++){
for(int y=0;y<arr.length-1-x;Y++){
if(arr[x])
}
}
后面在补