尚硅谷java学习笔记第五天(数组上)
2021/10/15 20:15:01
本文主要是介绍尚硅谷java学习笔记第五天(数组上),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
复习
/* 1000以内的完数 */ public class Test { public static void main(String[] args) { for(int i = 1;i <= 1000;i++){//遍历1000以内的数 int sum = 0;//初始化1000以内每个数的因数的和 for(int j = 1;j < i;j++){//遍历1000以内每个数的因数 if(i % j == 0){ sum += j; //1000以内每个数的因数累加 } } if(sum == i){ System.out.println(i);//如果每个数的因数的和等于其数本身就输出 } } } }
五:数组
数组概述:
数组(Array),是多个相同类型数据按一定顺序排列 的集合,并使用一个名字命名,并通过编号的方式 对这些数据进行统一管理。
数组的常见概念
数组名
下标(或索引)
元素
数组的长度
一维数组
/* *一.数组概述: *1.数组(Array),是多个相同类型数据按一定顺序排列 的集合,并使用一个名字命名,并通过编号的方式 对这些数据进行统一管理。 * *2数组的相关概念 * *>数组名 *>元素 *>角标,下标,索引 *>数组的长度:元素的个数 * *3.数组的特点 *1)数组是有序排列的 *2)数组本身属于引用数据类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型 *3)创建数组对象会在内存中开辟一整块连续的空间 *4)数组的长度一旦确定,就不能修改 * *4.数组的分类: *按照维数:一维数组,二维数组 *按照数组元素的类型,基本数据类型的数组,引用数据类型元素的数组(对象数组) * *5.一维数组的使用 * ①一维数组的声明和初始化 * ②如何调用数组的指定位置的元素 * ③如何获取数组的长度 * ④如何遍历数组 * ⑤数组元素的默认初始化值 * ⑥数组的内存解析 * */ public class ArrayTest { public static void main(String[] args) { //①一维数组的声明和初始化 int num;//声明 num = 10;//初始化 int id = 1001;//声明加初始化 int[] ids;//声明 //静态初始化:数组的初始化和数组元素的赋值操作同时进行 ids = new int[]{1001,1002,1003,1004}; //动态初始化:数组的初始化和数组元素的赋值操作分开进行 String[] names = new String[5]; //也是正确的写法 int[] arr = {1,2,3,4,5}; //类型推断 //总结,数组一旦初始化完成,其长度就确定了 //②如何调用数组的指定位置的元素 //数组的角标(或索引)从0开始的,到数组的长度-1结束。 names[0] ="王明"; names[1] ="王和"; names[2] ="张学良"; names[3] ="孙巨龙"; names[4] ="王宏志";//"王"charAt(0) //③如何获取数组的长度 //属性:length System.out.println(names.length);//5 System.out.println(ids.length);//4 //④如何遍历数组 /*System.out.println(names[0]); System.out.println(names[1]); System.out.println(names[2]); System.out.println(names[3]); System.out.println(names[4]);*/ for(int i = 0;i < names.length;i++){ System.out.println(names[i]); } //⑤数组元素的默认初始化值 // 基本数据类型 // 整型: 0 // 浮点型:0.0 // char:'0' 对应 Ascii码的值 // boolean类型:false System.out.println("*******整型*******"); int[] arr = new int[4]; for(int i = 0;i < arr.length;i++){ System.out.println(arr[i]); } System.out.println("******整型********"); short[] arr1 = new short[4]; for(int i = 0;i < arr1.length;i++){ System.out.println(arr1[i]); } System.out.println("*******浮点型*******"); float[] arr2 = new float[4]; for(int i = 0;i < arr2.length;i++){ System.out.println(arr2[i]); } System.out.println("******char********"); char[] arr3 = new char[4]; for(int i = 0;i < arr3.length;i++){ System.out.println(arr3[i]); } if(arr3[0] == 0){ System.out.println("你好"); } System.out.println("*****boolean******"); boolean[] arr4 = new boolean[5]; System.out.println(arr4[0]); //⑤数组元素的默认初始化值 // 引用数据类型:null System.out.println("*****引用数据类型******"); String[] arr5 = new String[5]; System.out.println(arr5[0]); if(arr5[0] == null){ System.out.println("你好"); } } }
数组的内存解析
简单的内存解析
/* *练习1 *升景坊单间短期出租4个月,550元/月(水电煤公摊,网费35元/月),空调、卫生间、厨房齐全。 *屋内均是IT行业人士,喜欢安静。所以要求来租者最好是同行或者刚毕业的年轻人,爱干净、安静。 */ public class ArrayTest { public static void main(String[] args) { //0 1 2 3 4 int[] arr = new int[]{8,2,1,0,3}; int[] index = new int[]{2,0,3,2,4,0,1,3,2,3,3}; String tel = ""; for(int i = 0;i < index.length;i++){ tel += arr[index[i]];//18013820100 } System.out.println("联系方式:" + tel); } }
/* 练习2 从键盘读入学生成绩,找出最高分,并输出学生成绩等级。 成绩>=最高分-10 等级为’A’ 成绩>=最高分-20 等级为’B’ 成绩>=最高分-30 等级为’C’ 其余 等级为’D’ 提示:先读入学生人数,根据人数创建int数组,存放学生成绩。 */ import java.util.Scanner; public class ArrayTest { public static void main(String[] args) { //1.使用Scanner,读取学生个数 Scanner scan = new Scanner(System.in); System.out.println("请输入学生的个数:"); int number = scan.nextInt(); //2.创建数组,存储学生成绩,动态初始化 int[] score = new int[number]; //3.给数组中的元素赋值 System.out.println("请输入学生的成绩:"); for(int i = 0;i < score.length;i++){ score[i] = scan.nextInt(); } //4.获取学生成绩的最大值 int max = 0; for(int i = 0;i < score.length;i++){ if(max <= score[i]){ max = score[i]; } } //5.根据每个学生成绩与最高分的差距,得到每个学生的等级,并输出等级和成绩 char level; for(int i = 0;i < score.length;i++){ if(max - score[i]<= 10){ level = 'A'; }else if(max - score[i]<= 20){ level = 'B'; }else if(max - score[i]<= 30){ level = 'C'; }else{ level = 'D'; } System.out.println("student" + i + "score is " + score[i] +",grade is " + level); } } }
多维数组的使用
Java 语言里提供了支持多维数组的语法。
如果说可以把一维数组当成几何中的线性图形, 那么二维数组就相当于是一个表格,像右图Excel 中的表格一样。
对于二维数组的理解,我们可以看成是一维数组 array1又作为另一个一维数组array2的元素而存 在。其实,从数组底层的运行机制来看,其实没有多维数组。
/* * 二维数组的使用 * * 1,理解 * 对于二维数组的理解,我们可以看成是一维数组array1又作为另一个一维数组array2的元素而存在。 * 其实,从数组底层的运行机制来看,其实没有多维数组。 * * 2.二维数组的使用 * ①二维数组的声明和初始化 * ②如何调用数组的指定位置的元素 * ③如何获取数组的长度 * ④如何遍历数组 * ⑤二数组元素的默认初始化值 * ⑥数组的内存解析 * * 规定:二维数组分为外层数组的元素,内层数组的元素 * int[][] arr = new int [4][3]; * 外层元素;arr[0],arr[1]等; * 内层元素;arr[0][0],arr[1][2]等 * 针对与初始化方式一:比如,int[][] arr = new int[4][3]; * 外层元素的初始化值为:地址值 * 内层元素的初始化值为;与一维数组初始化情况相同 * 针对与初始化方式一:比如,int[][] arr = new int[4][]; * 外层元素的初始化值为:null * 内层元素的初始化值为;不能调用,否则报错* * */ public class ArrayTest { 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][0]; //也是正确的写法 int arr4[][] = new int[][]{{1,2,3},{4,5},{6,7,8}}; int[] arr5[] = new int[][]{{1,2,3},{4,5},{6,7,8}}; //2.如何调用数组的指定位置的元素 System.out.println(arr1[0][1]);//2 System.out.println(arr2[1][1]);//null arr3[1] = new String[4]; System.out.println(arr3[1][0]); //3.获取数组的长度 System.out.println(arr5.length);//3 System.out.println(arr5[0].length);//3 System.out.println(arr5[1].length);//2 //4.如何遍历数组 for(int i = 0; i < arr5.length;i++){ for(int j = 0; j < arr5[i].length;j++){ System.out.print(arr5[i][j] + " "); } System.out.println(); } //5,二数组元素的默认初始化值 int[][] arr = new int [4][3]; System.out.println(arr[0]);//[I@15db9742 地址值 System.out.println(arr[0][0]);//0 System.out.println(arr);//[[I@15db9742 //外层:地址值 内层:与一维数组初始化情况相同 //6,数组的内存解析 } }
二维数组的内存解析
这篇关于尚硅谷java学习笔记第五天(数组上)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26JAVA语音识别项目资料的收集与应用
- 2024-11-26Java语音识别项目资料:入门级教程与实战指南
- 2024-11-26SpringAI:Java 开发的智能新利器
- 2024-11-26Java云原生资料:新手入门教程与实战指南
- 2024-11-26JAVA云原生资料入门教程
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程
- 2024-11-26Springboot单体架构搭建资料:新手入门教程