首页 > 代码库 > java基础之数组
java基础之数组
1、数组的定义
数组是相同数据类型的有序集合,数组是一种特殊类型的变量,是在内存中开辟的一片连续的存储空间
数组的元素:数组中的保存的具体的值
数组的长度:数组中能保存的最大得元素的个数。
数组的下标:数组是通过下标标识元素在数组中的位置的,下标从0开始,到数组长度-1
注意:数组中元素的类型必须与数组声明时的数据类型一致。
2、数组的声明、初始化、赋值
数组声明时,计算机未分配内存空间。例:int[] nums;或者int nums[];两张声明方式都可以
nums=new int[5];这个动作是为数组分配内存空间。
数组中元素如果未被赋值,其默认初始值根据数据类型的不同而不同。int数据类型默认初始值为0、double数据类型默认初始值为0.0、boolean数据类型默认初始值为false
注意:数组的长度一旦声明后,无法更改
数组中元素的数据类型不能混合存储
方式1:
int[] nums;
nums=new int[5];
nums[0]=1;
nums[1]=2;
.........
方式2:
int[] nums=new int[5];
news[0]=1;
news[1]=2;
........
方式3:int[] nums={10,20,30,40,50};
方式4:int[] nums=new int[]{10,20,30,40,50};
错误方式1:
int[] nums;
nums={10,20,30,40,50};
错误方式2:int[5] nums={10,20,30,40,50};
错误方式3:int[] nums=new int[5]{10,20,30,40,50};
3、数组的遍历——高级for循环
方式一:
int[] nums={10,20,30,40,50};
//遍历数组, 数组名.length获取数组的长度
for(int i=0;i<nums.length;i++){
System.out.println(nums[i]);
}
方式二:
这里介绍一种新的循环,高级for循环(for-each循环)
高级for循环是JDK1.5以后的新特性
语法:
for(元素数据类型 变量名:数组或集合){
循环体
}
例:int[] nums={10,20,30,40,50};
for(int n:nums){
System.out.println(n);
}
执行过程:相当于把数组下标中元素取出来,赋值给int n,即int n=nums[i];
注意:元素的数据类型和数组的数据类型必须一致
使用场景:高级for循环的功能逊于for循环,它无法直接操作下标,主要用于遍历数组
4、
案例1
1 import java.util.Scanner; 2 public class TestArray { 3 /* 4 根据用户输入的人数,动态创建数组,并获取用户输入的成绩,统计最高分,最低分和平均分 5 */ 6 public static void main(String[] args) { 7 Scanner in=new Scanner(System.in); 8 System.out.println("请输入人数"); 9 int num=in.nextInt(); 10 double[] scores=new double[num]; 11 for(int i=0;i<scores.length;i++){ 12 System.out.println("请输入第"+(i+1)+"名学生的成绩"); 13 scores[i]=in.nextDouble(); 14 } 15 int sum=0,avg=0; 16 double max=scores[0]; 17 double min=scores[0]; 18 for(int i=0;i<scores.length;i++){ 19 sum+=scores[i]; 20 if(scores[i]>max){ 21 max=scores[i]; 22 } 23 if(scores[i]<min){ 24 min=scores[i]; 25 } 26 } 27 avg=sum/scores.length; 28 System.out.println("最大值:"+max+"\t最小值:"+min+"\t平均分:"+avg); 29 } 30 31 }
案例2
1 import java.util.Scanner; 2 public class TestArray { 3 public static int search(int[] arr,int num){ 4 //在数组arr中查询指定元素,如果元素存在返回其下标,否则返回-1 5 int index=-1; 6 for(int i=0;i<arr.length;i++){ 7 if(arr[i]==num){ 8 index=i; 9 break; 10 } 11 } 12 return index; 13 } 14 15 public static void main(String[] args){ 16 int[] arr={12,34,23,56,3,65}; 17 int index=search(arr,3); 18 System.out.println(index); 19 } 20 }
java基础之数组