声明变量的方式
int num; //声明
num = 10; //初始化
int a = 100; //声明 + 初始化
1.声明方式
int[] arr1; //数组的声明
int arr2[]; //不推荐
2.初始化
(1)静态初始化
数组的初始化和数组元素的赋值操作同时进行
//1.1 静态初始化: 数组的初始化和数组元素的赋值操作同时进行
int[] arr3;
arr3 = new int[]{1001,1002,1003};
int[] arr4 = new int[]{1,2,3};
int[] arr5 = {4,5,6};
(2)动态初始化
数组的初始化和数组元素的赋值操作分开进行
//1.2 动态初始化: 数组的初始化和数组元素的赋值操作分开进行
String[] names = new String[5];
3.数组元素的引用
- 定义并用运算符new为之分配空间后,才可以引用数组中的每个元素;
- 数组元素的引用方式:数组名[数组元素下标]
- 数组元素下标可以是整型常量或整型表达式。如a[3] , b[i] , c[6*i];
- 数组元素下标从0开始;长度为n的数组合法下标取值范围: 0 —>n-1;如int a[]=new int[3];可引用的数组元素为a[0]、a[1]、a[2]
- 每个数组都有一个属性length指明它的长度,例如:a.length 指明数组a的长度(元素个数)
- 数组一旦初始化,其长度是不可变的
//2.如何调用数组指定位置的元素:通过索引的方式调用
//数组的索引是从0开始的,到数组的长度-1结束
names[0] = "张三";
names[1] = "李四";
names[2] = "王五";
names[3] = "赵六";
names[4] = "孙七";
//3、如何获取数组的长度
//属性 length
System.out.println(arr3.length);
System.out.println(names.length);
//4、如何遍历数组
for (int i = 0; i < arr3.length; i++){
System.out.println(arr3[i]);
}
for (int i = 0; i < names.length; i++){
System.out.println(names[i]);
}
4.数组元素的默认初始值
数组是引用类型,它的元素相当于类的成员变量,因此数组一经分配空间,其中的每个元素也被按照成员变量同样的方式被隐式初始化。
对于基本数据类型而言,默认初始化值各有不同
对于引用数据类型而言,默认初始化值为null(注意与0不同!)
//数组元素是整型
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[] arr3 = new char[4];
for (int i = 0; i < arr3.length; i++){
System.out.println(arr3[i]);
}
System.out.println();
//数组元素是布尔型
boolean[] arr4 = new boolean[4];
for (int i = 0; i < arr4.length; i++){
System.out.println(arr4[i]);
}
System.out.println();
//数组元素是引用数据类型:String
String[] arr45 = new String[4];
for (int i = 0; i < arr45.length; i++){
System.out.println(arr45[i]);
}
5.内存结构的简单说明
6.一维数组的内存解析
int[] arr = new int[]{1,2,3};
String[] arr1 = new String[4];
arr1[1] = “刘德华”;
arr1[2] = “张学友”;
arr1 = new String[3];
sysout(arr1[1]);//null
7.一维数组的练习
练习1
public class ArrayTest1 {
public static void main(String[] args){
/*
升景坊单间短期出租4个月,550元/月(水电煤公摊,网费35元/月),空调、卫生间、厨房齐全。
屋内均是IT行业人士,喜欢安静。所以要求来租者最好是同行或者刚毕业的年轻人,爱干净、安静。
*/
int[] arr = new int[]{8,2,1,0,3};
int[] index = new int[]{2,0,3,2,4,0,1,3,2,3,1};
String tel = "";
for(int i = 0 ; i < index.length ; i++){
tel += arr[index[i]];
}
System.out.println("联系方式:" + tel);//18013820102
}
}
练习2
import java.util.Scanner;
public class ArrayTest2 {
public static void main(String[] args) {
/*
2. 从键盘读入学生成绩,找出最高分,
并输出学生成绩等级。
成绩>=最高分-10 等级为’A’
成绩>=最高分-20 等级为’B’
成绩>=最高分-30 等级为’C’
其余 等级为’D’
提示:先读入学生人数,根据人数创建int数组,存放学生成绩。
*/
//1、创建scanner 读取学生个人
Scanner scanner = new Scanner(System.in);
System.out.print("请输入学生人数: ");
int studentNum = scanner.nextInt();
//2、创建int数组,存放学生成绩。
int[] scores = new int[studentNum];
int maxScore = 0;//最高分
//3、给数组中的元素赋值
for (int i = 0; i < scores.length; i++){
System.out.print("请输入学生 " + (i + 1) + " 的成绩: ");
scores[i] = scanner.nextInt();
//4、获取数组中的最大元素,找出最高分
if (maxScore < scores[i]){
maxScore = scores[i];
}
}
System.out.println();
System.out.println("最高分是:" + maxScore);
//4、根据每个学生与最高分的差值,得到每个学生的等级,并输出成绩和等级
char level;
for (int i = 0; i < scores.length; i++){
if (scores[i] >= maxScore - 10){
level = 'A';
}else if (scores[i] >= maxScore - 20){
level = 'B';
}else if (scores[i] >= maxScore - 30){
level = 'C';
}else {
level = 'D';
}
System.out.println("学生 " + (i + 1) + " 分数为 " + scores[i] + ", 等级为 " + level);
}
}
}
标签:int,System,数组,使用,println,new,out
From: https://www.cnblogs.com/sylaaa/p/18648811