数据的索引从0开始,到“数组长度-1”结束
如果访问数组元素的时候,索引编号并不存在,就会发生数组索引边界异常ArrayIndexOutOfBoundsException
package demo01;
/*
数据的索引从0开始,到“数组长度-1”结束
如果访问数组元素的时候,索引编号并不存在,就会发生数组索引边界异常ArrayIndexOutOfBoundsException
*/
public class demo10Array {
public static void main(String[] args) {
int[] ArrayA={10,20,30};
//索引编号并不存在,会发生数据索引边界异常的报错
System.out.println(ArrayA[5]);//ArrayIndexOutOfBoundsException
}
}
所有的引用类型的变量,都可以赋值为一个null值,代表其中什么都没有
数组必须进行new创建初始化才能使用其中的元素
如果只是赋值了一个null,没有进行new创建,将发生空指针异常NullPointerException
package demo01;
/*
所有的引用类型的变量,都可以赋值为一个null值,代表其中什么都没有
数组必须进行new创建初始化才能使用其中的元素
如果只是赋值了一个null,没有进行new创建,将发生空指针异常NullPointerException
*/
public class demo11Array {
public static void main(String[] args) {
int[] ArrayA=null;
//数组并未进行new创建
System.out.println(ArrayA[5]);//NullPointerException
}
}
如何获取数据长度,格式:
数组名称.length
结果将会得到一个int型数字,代表数组的长度
数组一旦创建,程序运行期间,长度不可以改变
package demo01;
import com.sun.prism.shader.Solid_ImagePattern_Loader;
import java.sql.SQLOutput;
/*
如何获取数据长度,格式:
数组名称.length
结果将会得到一个int型数字,代表数组的长度
数组一旦创建,程序运行期间,长度不可以改变
*/
public class demo12ArrayLength {
public static void main(String[] args) {
int[] ArrayA=new int[3];
int len=ArrayA.length;
System.out.println(len);
System.out.println(ArrayA);//[I@1540e19d
ArrayA=new int[5];//重新创建了一个数组,数组的变量名称和上一个数组的相同
int len1=ArrayA.length;
System.out.println(len1);
System.out.println(ArrayA);//因为是重新创建所以重新开辟了内存空间,内存地址哈希值会发生变化([I@1540e19d)
}
}
遍历数组,说的是对数组当中的每一个元素进行逐一、挨个处理,默认的处理方式是打印输出
package demo01;
/*
遍历数组,说的是对数组当中的每一个元素进行逐一、挨个处理,默认的处理方式是打印输出
*/
public class demo13ArratLength {
public static void main(String[] args) {
int[] ArrayA=new int[]{1,2,3,4,5,6,7,8,9,10};
//获取数组的长度
int len=ArrayA.length;
//使用for循环,循环的次数就是数组的长度
for(int i=0;i<len;i++){
System.out.println(ArrayA[i]);
}
}
}
package demo01;
public class demo14Assay {
public static void main(String[] args) {
int[] ArrayA=new int[]{3000,3500,3001,4000,2000,8000,6000,1000};
//输出数组中的最小值
int max=ArrayA[0];
for(int i=1;i<ArrayA.length;i++){
if(ArrayA[i]>max){
max=ArrayA[i];
}
}
System.out.println("最大值是"+max);
//输出数组中的最小值
int min=ArrayA[0];
for(int i=1;i<ArrayA.length;i++){
if(ArrayA[i]<min){
min=ArrayA[i];
}
}
System.out.println("最大值是"+min);
}
}
package demo01;
//题目:将数组中元素的顺序反转
public class demo15 {
public static void main(String[] args) {
int[] ArrayA={9,8,7,6,5,4,3,2,1,0};
//利用临时变量交换数据
for(int min=0,max=ArrayA.length-1;min<max;min++,max--){
int temp=ArrayA[min];
ArrayA[min]=ArrayA[max];
ArrayA[max]=temp;
}
//遍历数组
for(int i=0;i<=ArrayA.length-1;i++){
System.out.println(ArrayA[i]);
}
}
}
package demo01;
//数组方法的传递
//调用数组方法时,传递的参数实际上是数组的内存地址的哈希值
public class demo16 {
public static void main(String[] args) {
//调用printArray方法
int[] ArrayA={10,20,30,40,50};
printArray(ArrayA);//调用时,传递的参数实际上是数组的内存地址的哈希值
}
//定义方法
public static void printArray(int[] ArrayA){
for(int i=0;i<ArrayA.length;i++){
System.out.println(ArrayA[i]);
}
}
}
package demo01;
/*
一个方法可以有0或1或多个参数,但是只能有0或1个返回值
如果想有多个返回值,可以将多个返回值以一个数组的形式返回
数组作为方法的参数,传递进去的是数组的内存地址的哈希值
数组作为方法返回值,返回的也是数组的内存地址的哈希值
*/
public class demo17 {
public static void main(String[] args) {
int[] suanfa={10,20,30};
System.out.println(suanfa[0]);
}
public static int[] suanfa(int a,int b,int c){
int sum=a+b+c;
int avg=sum/3;
int[] ArrayA={sum,avg};
return ArrayA;
}
}