Java初级-一维数组

java初级-一维数组

1数组的定义

定义:数组是一个变量,存储相同数据类型的一组数据,声明一个数组就是在内存空间声明一片连续的存储空间

2数组的基本使用

2.1最基本的数组使用:

1)声明数组 数据类型[] 数组名

2)分配空间:告诉数组能够存储多少个元素

数组名=new 数据类型[数组长度];

3)赋值操作:数组名[下表]=数据;

//		定义一个数组
		int[] arr;
//		给数组分配空间
		arr= new int[6];
//		给数组赋值
		arr[0]=1;

2.2升级版数组使用

声明数组、分配空间合并一步写

格式: 数据类型[] 数组名=new 数据类型[数组长度];

//声明数组、分配空间合并一步写
		int[] arr=new int[8];
//		给数组赋值
		arr[0]=15;

注意:如果没有分配空间,数组中的数据类型int 默认0;float默认0.0;布尔类型默认false;

2.3最终版数组使用

声明数组、分配空间、赋值合并一步写:

格式:数据类型[] 数组名=new 数据类型[]{数据1,数据n}

操作数据: 数据名[下标]

//定义数组、分配空间、赋值一步写
		int[] arr=new int[]{1,435,243,};
//		操作数据
		int a=arr[0];
		System.out.println(a);

注意:以上语法中{}前面的[]里面不能写数组长度

2.4最简方法

格式:

数据类型[] 数组名={数据1,数据2,,,,,数据n};

//最简单的方法
		int[] arr={1,4,7,4,3,};
//		操作数据
		int a=arr[4];
		System.out.println(a);

3数组常用操作

3.1获取数组元素个数(数组长度)

格式:数组名.length

3.2遍历数组

按照数组元素下标输出数组中的所有元素

int[]  arr1=new int[]{13,35,23};
for(int i=0;i<arr1.length;i++){
System.out.println(arr1[i]);
}

3.3增强for循环

格式 :for(数据类型 变量名:数组名或者集合名){

​ }

int[] arr={1,34,56,34,576};
	for(int a:arr){
	System.out.println(a);
	}

执行规律:按照数据或集合中的元素的顺序,依次将元素取出放到变量中,操作变量就可以实现操作

注意:变量名可以随便取,最后输出变量名;增强for循环一般就是用来遍历

}

注意:数组长度一旦固定好之后,就不能修改,如果你需要向数组中添加元素,你只能再声明一个数组;

4数组应用

4.1应用1

有一个数列:8,4,2,1,23,344,12

1)循环输出数列的值

//		定义一个数组
		int[] arr={8,4,2,1,23,344,12};
//		使用增强的for循环对数组进行遍历
		for(int a:arr){
			System.out.print(a+" ");
		}

2)求数列中所有数值的和

		int sum=0;
		int[] arr={8,4,2,1,23,344,12};
		for(int i=0;i<arr.length;i++){
			sum+=arr[i];
		}
//		for(int a:arr){
//			sum+=a;
//		}//这种增强的for循环也可以使用
		System.out.println("所有的数据之和是:"+sum);

3)猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数

import java.util.Scanner;//导包
int[] arr={8,4,2,1,23,344,12};
//键盘录入一个数据
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个随机数:");
int random=sc.nextInt();
System.out.println("你输入的数据是:"+random);
//定义一个变量对判断次数进行计数,
int count=0;
for(int a:arr){
if(random==a){
System.out.println("这个数列中包含此数");
}else{
count++;
//当判断次数和数组长度相等时,说明已经是最后一个数据了,且数组中不包含这个数据
if(count==arr.length){
System.out.println("数列中不包含这个数");
		}
	}
}

4.2应用2

从键盘输入6个学生的成绩,输入完之后输出最高分、最低分、平均分、所有人的分数总分

//键盘录入6个数据
import java.util.Scanner;
 Scanner sc=new Scanner(System.in);
        double[] arr=new double[6];
        //使用for循环将数据写入数组中
         for(int i=0;i<arr.length;i++){
        System.out.println("请输入第"+(i+1)+"学生的成绩");
          arr[i]=sc.nextDouble();
         }
         //使用for循环遍历输出数组中的数据
         for(int i=0;i<arr.length;i++){
        	 System.out.println("第"+(i+1)+"学生的成绩是"+arr[i]);
         }//以上是键盘录入数据和输出数据
//         假设数组中的第一个数据是最大值
         double max=arr[0];
         for(int i=0;i<arr.length;i++){
//通过for循环将最大值和数组中的元素一一比较,如果比最大值大,则将值赋给最大值        	 
        	 if(max<arr[i]){
        		 max=arr[i];
        	 }
         }
         System.out.println("最大值是:"+max);//以上输出数组中的最大值
 double min=arr[0];
         for(double a:arr){
        	//通过for循环将最小值和数组中的元素一一比较,如果比最小值小,则将值赋给min  
        	 if(min>a){
        		 min=a;
        	 }
         }
         System.out.println("最小值是"+min);//以上输出数组中的最小值,在算最大值和最小值时,使用了不同的for循环,可以自行比较
int sum=0;
  for(double a:arr){
  sum+=a;
   }
   System.out.println("所有和是:"+sum);

4.3应用3

有一组学员的成绩{99,85,82,63, 60},将它们按降序排列。要增加一个学员的成绩,将它插入成绩序列,并保持降序

int[] nums = {99,85,82,63,60};
		
		//1)定义一个长度比原来数组大1的数组
		int[] newNums = new int[nums.length+1];
		//2)将原来数组中的元素存储到新的数组中
		for(int i =0;i<nums.length;i++){
			newNums[i]=nums[i];
		}
		//输出新数组中的所有元素
		for (int i : newNums) {
			System.out.print(i+" ");
		}
		System.out.println();
		//3)从键盘录入,获取你要插入的元素
		System.out.println("请输入你要插入的元素:");
		int insert = sc.nextInt();
		
		//4)获取你插入元素要插入的位置(下标),将你要插入的元素依次与数组中的元素进行比较,如果你插入的元素比数组中得元素大, 当前元素的下标就是你要插入元素的位置,结束循环比较过程
		//定义一个int类型的变量index存储元素要插入的位置
		int index = newNums.length-1;
		for(int i =0;i<newNums.length;i++){
			if(insert>newNums[i]){
				//获取插入位置为i
				index=i;
				//得到插入位置之后,后面的比较操作不再执行,退出循环
				break;
			}
		}
		System.out.println("你要插入元素的位置为:"+index);
		//5)从插入位置开始的元素及之后的元素都要依次往后移动一位(反向操作,从最后一个元素开始)
		for(int i =newNums.length-1;i>index;i--){
			//移动元素
			newNums[i] = newNums[i-1];
		}
		//输出新数组中的所有元素
		System.out.println("元素移动位置之后.....");
		for (int i : newNums) {
			System.out.print(i+" ");
		}
		System.out.println();
		//6)将你要插入的元素存储到它要插入位置
		newNums[index]=insert;
		//输出新数组中的所有元素
		System.out.println("元素插入之后.....");
		for (int i : newNums) {
			System.out.print(i+" ");
		}
		System.out.println();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值