尚硅谷_Java零基础教程--学习笔记(七)

3-1 数据的概述

package com.atguigu.java;

/*
 * 一、数组的概述
 * 1、数组的理解:数组(Array),是多个相同数据类型按照一定顺序排列的集合,并使用一个名字命名,并通过编号进行统一管理。
 * 
 * 2、数组相关概念:
 * (1)数组名
 * (2)元素
 * (3)角标、下标、索引
 * (4)数组的长度,元素的个数
 * 
 * 3、数组的特点:
 * (1)数组是有序排列的
 * (2)数组属于引用数据类型的变量,数组的元素,既可以是基本数据类型也可以是引用数据类型。
 * (3)创建数组对象会在内存中开辟一块连续的内存空间
 * (4)数组的长度一旦确定,就不可以被修改。
 * 
 * 4、数组的分类
 * (1)按照维数:一维数组、二维数组。。。
 * (2)按照数组元素的类型:基本数据类型元素的数组、引用数据类型元素的数组。
 * 
 * 5、一维数组的使用
 * (1)一维数组的声明和初始化。
 * (2)如何调用数组的指定位置的元素。
 * (3)如何获取数组的长度。
 * (4)如何遍历数组。
 * (5)数组元素的默认初始值。
 * (6)数组的内存解析。
 */
public class ArrayTest {
	public static void main(String[] args) {
		// (1)一维数组的声明和初始化。
		int num; //声明
		num = 10; //初始化
		int id = 1001; //声明+初始化
		
		int[] ids; //声明
		//静态初始化:数组的初始化和数组元素的赋值操作同时进行。
		ids = new int[] {1001,1002,1003,1004}; // 初始化
		//动态初始化:数组的初始化和数组元素的赋值操作分开进行。
		String[] names = new String[5];
		//总结:数组一旦初始化完成,其长度就确定了。
		
		//(2)如何调用数组的指定位置的元素:通过角标的方式调用。
		//数组的角标(或索引)从0开始,到数组的长度-1结束。
		names[0] = "王铭";
		names[1] = "王赫";
		names[2] = "张学良";
		names[3] = "孙居龙";
		names[4] = "王宏志";
		
		//(3)如何获取数组的长度。属性:length
		System.out.println(names.length);
		System.out.println(ids.length);
		
		//(4)如何遍历数组。
		for(int i=0;i<names.length;i++) {
			System.out.println(names[i]);
		}
		
	}
}

package com.atguigu.java;
/*
 * (5)数组的默认初始化值:
 * > 整型都是0
 * > 浮点型都是0.0
 * > 数组元素是char类型:0(ASCII码)或\u0000
 * > 数组元素是boolean类型:false
 * > 数组元素是引用数据类型:null
 * 
 * (6)数组的内存解析
 * 栈(stack):局部变量
 * 堆(heap):new出来的结构:对象、数组
 * 方法区:常量池、静态域
 */
public class ArrayTest1 {
	public static void main(String[] args) {
		//(5)数组元素的默认初始化值
		int[] arr = new int[4];
		for(int i=0;i<arr.length;i++) {
			System.out.println(arr[i]);
		}
	}
}
package com.atguigu.exer;
/*
 * 从键盘读入学生成绩,找出最高分,并输出学生成绩等级。
 * 成绩>=最高分-10,等级为”A“
 * 成绩>=最高分-20,等级为”B“
 * 成绩>=最高分-30,等级为”C“
 * 其余,等级为“D”
 */
import java.util.Scanner;

public class ArrayDemo1 {
	public static void main(String[] args) {
		//1、使用Scanner读取学生个数
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入学生人数:");
		int number = scan.nextInt();
		//2、创建数组,存储学生成绩,动态初始化
		int[] scores = new int[number];
		//3、给数组中的元素赋值
		System.out.println("请输入"+number+"个学生成绩:");
		for(int i=0;i<scores.length;i++) {
			scores[i] = scan.nextInt();
		}
		//4、获取数组中元素的最大值:最高分
		int maxScore = 0;
		for(int i=0;i<scores.length;i++) {
			if(maxScore < scores[i]) {
				maxScore = scores[i];
			}
		}
		//5、根据每个学生成绩与最高分的差值,得到每个学生的等级
		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);
		}
		
	}
}
package com.atguigu.java;

/*
 * 二维数组的使用
 * 1、数组的数组
 * 
 * 2、二维数组的使用
 * (1)二维数组的声明和初始化。
 * (2)如何调用数组的指定位置的元素。
 * (3)如何获取数组的长度。
 * (4)如何遍历数组。
 * (5)数组元素的默认初始值。
 * (6)数组的内存解析。
 */
public class ArrayTest2 {
	public static void main(String[] args) {
		//1.二维数组的声明和初始化。
		int[] arr = new int[] {1,2,3};
		//静态初始化
		int[][] arr1 = new int[][] {{1,2,3},{4,5},{6,7,8}};
		//动态初始化1
		String[][] arr2 = new String[3][2];
		//动态初始化2
		String[][] arr3 = new String[3][];
		
		//2.如何调用数组的指定位置的元素。
		System.out.println(arr1[0][1]);
		System.out.println(arr2[1][1]);
		
		arr3[1] = new String[4];
		System.out.println(arr3[1][0]);
		
		//3.如何获取数组的长度。
		System.out.println(arr1.length);
		System.out.println(arr1[0].length);
		System.out.println(arr1[1].length);
		
		//4.如何遍历数组。
		for(int i=0; i<arr1.length;i++) {
			for(int j=0; j<arr1[i].length;j++) {
				System.out.print(arr1[i][j]);
			}
			System.out.println();
		}
	}
}

package com.atguigu.java;
/*
 * 二维数组:外层数组元素、内层数组元素。
 */
public class ArrayTest3 {
	public static void main(String[] args) {
		//5.数组元素的默认初始值。
		int[][] arr = new int[4][3];
		System.out.println(arr[0]); //地址
		System.out.println(arr[0][0]);//0
		
		float[][] arr1 = new float[4][3];
		System.out.println(arr1[0]);
		System.out.println(arr1[0][0]);
		
		String[][] arr2 = new String[4][2];
		System.out.println(arr2[1]);
		System.out.println(arr2[1][0]);
		
		double[][] arr3 = new double[4][];
		System.out.println(arr3[0]); //null
		System.out.println(arr3[0][1]); //空指针报错。
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值