import java.util.Scanner;
/**
*
* @author Json
* @date 2020年7月13日下午11:07:54
*
*
* 数组的长度一旦确定 则不能被修改
* 数组的分类
* 按照维数分组 一维数组 二维数组 。。。
* 按照数组元素类型分组 基本数据类型元素数组 引用数据类型元素数组
* 一维数组的使用
* 1.一维数组的声明和初始化
* 2.如何调用数组的指定位置元素
* 3.如何获取数组的长度
* 4. 如何遍历数组
* 5. 数组元素的默认初始值
* 6. 数组的内存解析
*/
public class ArrayTest {
public static void main(String[] args) {
// 1.一维数组的声明和初始化
int[] ids; //声明
//静态初始化 数组的初始化和数组元素的赋值同时操作
ids = new int[]{1001,1002,1003};
// 动态初始化 数组的初始化和数组元素的赋值分开操作
String[] names= new String[5];
//错误写法
//int[] arr1 =new int[];
//int[5] arr2 =new int[5];
// int[] arr3 =new int[3]{1,2,3}
//总结: 数组一旦初始化完成 其长度就确定了
//如何调用数组的指定位置元素
// 根据下标来获取 数组元素
System.out.println(ids[0]);
//如何获取数组的长度
System.out.println(ids.length);
//如何遍历数组
for(int i=0;i<ids.length;i++) {
System.out.println(ids[i]);
}
//数组元素的默认初始值
//如果你没赋值 他就会有默认初始值
//数组元素是整型的话 初始化值都为 0
int[] arr = new int[4];
// 初始值为 0.0
float[] floatArr = new float[3];
//char 初始化 0或 '\u0000' 此0 是ASCII码 的代表 而不是真正的0;
char[] charArr =new char[4];
// boolean 默认值初始化 false
boolean[] boolArr =new boolean[2];
//数组元素是引用数组类型时 默认初始化值: null
String[] strArr = new String[5];
//查询出房东的电话好
int[] intarr=new int[] {8,2,1,0,3};
int[] intArr1=new int[] {2,0,3,2,4,0,1,3,2,3,3};
String tel="";
for(int i=0;i<intArr1.length;i++) {
tel+=intarr[intArr1[i]];
}
System.out.println("电话为:"+tel);
//练习题
//从键盘输入学生成绩 找出最高分 并输出学生成绩等级
//使用Scanner 读取学生个数
// Scanner scanner =new Scanner(System.in);
// System.out.println("请输入学生人人数:");
// int number =scanner.nextInt();
// //创建数组 存储学生成绩 动态初始化
// int[] numArr=new int[number];
// //遍历数组 给数组中的元素赋值
// System.out.println("请输入学生成绩:");
// for(int i=0;i<numArr.length;i++) {
// numArr[i]=scanner.nextInt();
// }
// // 获取数组中的最大值
// int max=0;
// for (int i=0;i<numArr.length;i++) {
// if(max<numArr[i]) {
// max=numArr[i];
// }
// }
// System.out.println("学生最大的值:"+max);
//根据每个学生的成绩 与最大值的差值 得到每个人的等级
// char level;
// for(int i=0;i<numArr.length;i++) {
// if(max-numArr[i]<=10) {
// level='A';
// }else if(max-numArr[i]<=20) {
// level='B';
// }else{
// level='C';
// }
// System.out.println("学生 "+ i +"成绩为"+numArr[i]+" 等级为"+level);
// }
//
//多维数组的使用
//二维数组的声明和初始化 赋上值 就不要写长度了 不赋值的写上长度
//静态初始化
int[][] Arr2=new int[][] {{1,2,3,4},{123,3213,321},{321321}};
// 动态初始化1
String[][] Arr3=new String[3][2];
//动态初始化2
String[][] Arr4=new String[3][];
//错误的声明
// String[][] Arr4=new String[][4];
//String[4][3] Arr4=new String[][];
//正确的
//String Arr5[][] =new String[3][];
//String[] Arr5[] =new String[3][];
//也可以这样省略写法 省略new
// int Arr6[] = {3,2,3}; //类型推断
//如何调用二维数组的元素
System.out.println(Arr2[1][1]);
//获取二维数组的长度
System.out.println(Arr2.length);
//如何遍历二维数组
for(int i=0;i<Arr2.length;i++) {
for(int j=0;j<Arr2[i].length;j++) {
System.out.print(Arr2[i][j]+" ");
}
System.out.println();
}
//二维数组的默认初始化值
int[] [] defuleArr=new int[2][3];
System.out.println(defuleArr[0]); //默认初始化值 地址 [I@28a418fc
System.out.println(defuleArr[0][1]); // 0
//二维数组 外层的初始化值 一般都是一个 地址
// 内层的初始化值跟一维的基本一致
//还有特殊的情况
//比如 外层规定长度 内层不规定
int[][] Arr6=new int[4][];
System.out.println(Arr6[0]); //null
//他会先初始化 4个null 然后发现内层没有定义长度 内层没办法划分存储空间地址 所以说为null
}
}
JAVA数组的详解
原创
©著作权归作者所有:来自51CTO博客作者json____的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:Eclipse 导入已有工程
下一篇:java数组详解
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Java 中数组的使用(一维数组和二维数组)
本文详细的介绍了,在Java 中数组的使用,并对其内存存在形式进行了详细的分析。
数组 一维数组 二维数组 java基础
















