本文主要是介绍java语言中数组中的每个数据称为_一、Java语言基础(4)_方法和数组——数组...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
2018-04-25
不悔梦归处,只恨未尽心
数组
一、一维数组
数组的含义:具有相同类型的多个变量按有序形式组织起来的数据形式。(数组是用来存储固定大小的同类型元素。)
数组的定义:
方式1(推荐使用):数组元素类型[] 数组名称; 如:int[] ages; (可以把 int[] 看成一个整体,看成一种数据类型,int类型的数组)
方式2:数组元素类型 数组名称[]; 如:int ages[];
数组必须初始化才能使用,因为初始化表示在内存存中分配空间。
3.数组的初始化:
数组是定长的:一旦初始化完成,数组的长度(数组元素个数)就固定了,不能改变。如果需要更改,只能重新初始化。
静态初始化
由程序员为每一个数组元素设置初始值,而数组的长度由系统自动分配
语法:数组元素类型[] 数组名 = new 数组元素类型[]{元素1,元素2,元素3,...}; new关键字:在堆空间开辟一块内存区域,用来存储数据。
举例:int[] num = new int[]{1,3,5,7,9};
简单写法(必须申明的同时并初始化,不能先声明后初始化):int[] num = {1,3,5,7,9};
动态初始化
由程序员设置数组元素个数(数组长度),而每一个数组元素的初始值由系统决定。
语法:数组元素类型[] 数组名 = new 数组元素类型[length];
举例:int[] num = new int[100];
4.静态初始化内存分析
5.动态初始化内存分析
6.数组的基本操作
获取数组元素
元素类型 变量 = 数组名[index]; index表示索引
设置元素
数组名[index] = 值;
遍历数组
建议使用for循环遍历
数组长度
int num = 数组名.length; (length是属性,不是方法)
索引范围
[0,length-1]从0开始,逐一递增
数组基本操作的代码:
1 //数组的基本操作
2
3 classArrayDemo4 {5 public static voidmain(String[] args){6
7 int[] num1 = new int[]{1,3,5,7,9};8
9 System.out.println("数组的长度=" +num1.length);10 System.out.println("数组第一个元素=" + num1[0]);//获取数组元素11
12 //修改(设置)num1数组的第一个元素
13 num1[0] = 100;14 System.out.println("数组第一个元素=" + num1[0]);//获取数组元素
15
16 System.out.println("----------------------------");17
18 //遍历数组
19 System.out.println("数组第一个元素=" + num1[0]);20 System.out.println("数组第二个元素=" + num1[1]);21 System.out.println("数组第三个元素=" + num1[2]);22 System.out.println("数组第四个元素=" + num1[3]);23 System.out.println("数组第五个元素=" + num1[4]);24
25 System.out.println("----------------------------");26
27 //使用for循环遍历数组
28 for(int index = 0; index < num1.length; index++){29 System.out.println(num1[index]);30 }31 }32 }
输出结果:
7. 操作数组常见异常
NullPointerException:空指针异常(空引用异常)
当数组没有初始化,就直接操作数组,就会出现空指针异常
如: int[] bs = null;
System.out.println(bs.length);
ArrayIndexOutOfBoundsException:数组的索引越界异常
如: int[] a = {100};
System.out.println(a[-1]);
8.获取数组最大和最小元素
输出结果:10
1 classArrayDemo22 {3
4 //获取数组最大元素
5 public static int getMax(int[] num){6 int max = num[0];//假设第一个元素是最大值
7 for(int index = 1; index < num.length; index++){8 if(num[index] >max){9 max = num[index]; //把最大值存储在max变量里
10 }11 }12 returnmax;13
14 }15
16 public static voidmain(String[] args)17 {18
19 int[] num = new int[]{-3,0,2,1,10};20
21 int max =ArrayDemo2.getMax(num);22 System.out.println(max);23 }24 }
9.按格式打印数组元素
1 classArrayDemo22 {3
4
5
6 public static voidmain(String[] args)7 {8
9
10 String[] arr = {"A","B","C","D","E"};11 ArrayDemo2.printArrary(arr);12 }13 static voidprintArrary(String[] arr){14 //如果数组为空,则输出null
15 if(arr == null){16 System.out.println("null");17 return; //结束方法
18 }19
20 String ret = "[";21 //遍历数组
22 for(int index = 0; index < arr.length; index++){23 ret = ret +arr[index];24 //如果当前index不是最后一个索引,则拼接“,”
25 if(index != arr.length-1){26 ret = ret + ", ";27 }28 }29 ret = ret + "]";30
31 System.out.println(ret);32 }33 }
输出结果:
10.逆序排列数组元素
1 classArrayDemo22 {3
4 public static voidmain(String[] args)5 {6 String[] arr = {"A","B","C","D","E"};7 ArrayDemo2.printArrary(arr);8 String[] newArr =ArrayDemo2.reverse(arr);9 ArrayDemo2.printArrary(newArr);10 }11 static voidprintArrary(String[] arr){12 //如果数组为空,则输出null
13 if(arr == null){14 System.out.println("null");15 return; //结束方法
16 }17
18 String ret = "[";19 //遍历数组
20 for(int index = 0; index < arr.length; index++){21 ret = ret +arr[index];22 //如果当前index不是最后一个索引,则拼接“,”
23 if(index != arr.length-1){24 ret = ret + ", ";25 }26 }27 ret = ret + "]";28
29 System.out.println(ret);30 }31
32 staticString[] reverse(String[] oldArr){33
34 //创建一个新数组,用来存放就数组逆序之后的元素
35 String[] newArr = newString[oldArr.length];36 for(int index = oldArr.length-1; index >= 0; index--){37 newArr[oldArr.length-1-index] =oldArr[index];38 }39 returnnewArr;40 }41 }
输出结果:
11.元素出现索引(线性搜索)
classArraySearchDemo
{public static voidmain(String[] args)
{int[] arr = {10,20,30,10,50,-30,10};int beginIndex = ArraySearchDemo.indexOf(arr,10);
System.out.println(beginIndex);int endIndex = ArraySearchDemo.lastIndexOf(arr,10);
System.out.println(endIndex);
}/*查询key元素在arr数组中第一次出现的位置
参数:
arr:从哪一个数组中去做查询
key:当前去查询的元素
返回:如果key存在于arr数组中,则返回第一次出现的索引
如果key不存在于arr数组中,则返回-1*/
static int indexOf(int[] arr,intkey){for(int index = 0; index < arr.length; index++){if(arr[index] ==key){returnindex;
}
}return -1;
}//获取key参数在arr数组中最后出现的索引位置
static int lastIndexOf(int[] arr,intkey){for(int index = arr.length-1; index >= 0; index--){if(arr[index] ==key){returnindex;
}
}return -1;
}
}
输出结果:
这篇关于java语言中数组中的每个数据称为_一、Java语言基础(4)_方法和数组——数组...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!