数组

本文详细介绍了Java编程中的数组概念,包括一维数组和二维数组的声明、初始化、元素访问以及遍历。示例展示了静态和动态初始化数组的方法,以及如何查找数组中的最高分并确定成绩等级。此外,还探讨了数组的内存解析和默认初始化值。
摘要由CSDN通过智能技术生成

数组(Array):多个相同类型数据按一定顺序排列的集合,用一个名字命名,编号方式数据管理。

有关概念
数组名
下标(索引)
元素
数组长度:元素的个数

一 : 一维数组





package Array1;
public class array1 {
	public static void main(String[] args) {
		//静态初始化:数组的初始化和数组元素的赋值操作同时进行
		int[]ids=new int[]{100,101,102,103};
		//动态初始化:数组的初始化和数组元素的赋值操作分开进行
		String[]names=new String[6];
		//如何调用数组的指定位置的元素:通过角标的方式调用
		//数组的角标(索引)从0开始的,到数组的长度-1结束
		names[0]="胡学好";
		names[1]="左长洲";
		names[2]="王子阳";
		names[3]="龙玉磊";
		names[4]="高运泽";
		names[5]="王宏";
		//如何获取数组的长度
		//属性:length
		System.out.println(names.length);
		System.out.println(ids.length);
		//如何遍历数组
		for(int i=0;i<names.length;i++) {
			System.out.println(names[i]);
		 }
		//数组元素的默认初始化值
		//数组元素是整形:0
		//数组元素是浮点型:0.0
		//数组元素是char型:0或'\u0000',而非'0'
		//数组元素是boolean型:false
		//数组元素是引用数据类型:null
		int[]arr=new int[4];
		for(int i=0;i<arr.length;i++) {
			System.out.println(arr[i]);
		}
		String[] arr1=new String[5];
		System.out.println(arr1[0]);
		}
		}




``

/*键盘读入成绩,找出最高分,并输出成绩等级
 * 成绩>=最高分-10 等级为'A'
 * 成绩>=最高分-20 等级为'B'
 * 成绩>=最高分-30 等级为'C'
 * 其余                            等级为'D'
 * 输出: student    score is   grade is    
 */

package Array1;

import java.util.Scanner;

public class arry2 {

	public static void main(String[] args) {
		//使用scanner读取学生个数
		Scanner scanner=new Scanner(System.in);
		System.out.println("请输入学生人数");
		int number=scanner.nextInt();
		//创建数组,存储学生成绩,动态初始化
		int[]scores=new int[number]; 
		//给数组元素赋值
		System.out.println("请输入"+number+"个学生成绩:");
		int  maxScore=0;
		for(int i=0;i<scores.length;i++) {
			scores[i]=scanner.nextInt();
			//获取数组最大值即最高分
			if(maxScore<scores[i]) {
				maxScore=scores[i];
			}
			
		}
		//根据每个学生成绩与最高分的差值,得到每个学生等级,并输出等级和成绩
		char level;
		for(int i=0;i<scores.length;i++) {
			if(maxScore-scores[i]<=10) {
				level='A';
			}else if(maxScore-scores[i]<=20) {
				level='B';
			}else if(maxScore-scores[i]<=30) {
				level='C';
			}else {
				level='D';
			}
			System.out.println("student"+i+"score is"+scores[i]+",grade is"+level);
			
			
		}
	}

}

//数组的内存解析:
/*内存的简化结构
*栈:局部变量(放在方法中的变量)
*堆:new出来的结构:对象 .数组
*方法区:
* 常量池
* 静态域
*/
二 : 二维数组

package Array1;

public class array2 {

	public static void main(String[] args) {
		//二维数组的声明和初始化
		//静态初始化
		int[][]arr={{1,2,3},{4,5},{6,7,8}};
		//动态初始化1
		String[][]arr1=new String[3][2];//三行两列
		//动态初始化2
		String[][]arr2=new String[3][];
		//如何调用数组的指定位置元素
		System.out.println(arr[1][0]);
		arr2[1]=new String[4];//在堆中重新new一个含四个元素的数组指向arr2中的第二行
		System.out.println(arr2[1][0]);
		//获取数组的长度
		System.out.println(arr.length);
		System.out.println(arr[0].length);
		//如何遍历二维数组
		for(int i=0;i<arr.length;i++) {
			for(int j=0;j<arr[i].length;j++) {
				System.out.print(arr[i][j]+" ");
			}
			System.out.println();
		}
		//二维数组分外层数组元素,内存数组元素
		/*二维数组的默认初始化值
		 * 方式1:int[][]arr=new int[4][3];
		 * 外层元素的初始化值为:地址值
		 * 内层元素的初始化值:与一维数组初始化情况相同
		 * 方式2;int[][]arr=new int[4][];
		 * 外层元素的初始化值为:null
		 *  内层元素的初始化值:不能调用,报错
		 */
		int[][]arr3=new int[4][3];
		System.out.println(arr3[0]);//地址值
		System.out.println(arr3[0][0]);//0
		System.out.println(arr3);//地址值
		
		
		
		
		
		
		
		
		
		

	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值