数组和枚举
数组
数组的定义:可以存储同种类型的多个值。
格式一:数据类型[] 数组名----int [] array
格式二:数据类型 数组名[]----int array[]
数组的初始化:
就是在内存中,为数组容器开辟空间,并将数据存入容器中的过程
静态初始化:
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3…};
int[] array = new array[]{11, 22, 34};
//简写模式:数据类型[] 数组名 = {元素1, 元素2, 元素3...};
数组一旦定义就确定了。
在创建打印之后出现的是地址–[I@446cdf90
[:表示当前是一个数组
I:表示当前数组里面的元素都是int类型的
@:表示一个间隔符(固定格式)
446cdf90:才是数组真正的地址值(十六进制)
动态初始化:
数据类型[] 数组名 = new 数据类型[“需要的内存空间”]
int[] num = new int[10];
//表示创建一个长度为10的数组
//相关案例:数组存储学生成绩,并计算平均分
package array;
import java.util.Scanner;
public class AvgScore {
public static void main(String[] args) {
int[] scores = new int[10];
Scanner scan = new Scanner(System.in);
int sum = 0;
for(int i = 0; i < scores.length; i++) {
System.out.println("请输入学生分数!!");
int score = scan.nextInt();
scores[i] = score;
sum += scores[i];
}
System.out.print("平均分是:" + (double)sum/scores.length);
}
}
//输入输出结果:
请输入学生分数!!
88
请输入学生分数!!
89
请输入学生分数!!
66
请输入学生分数!!
54
请输入学生分数!!
32
请输入学生分数!!
90
请输入学生分数!!
100
请输入学生分数!!
88
请输入学生分数!!
79
请输入学生分数!!
60
平均分是:74.6
更多关于数组的知识可了解:
https://blog.csdn.net/LXMXHJ/article/details/122324971
枚举
关键字:
enum, 是enumeration:列举的缩写
使用枚举可以限制一定的范围,如果程序由一组固定的常熟组成,考虑Enum类型,减少出bug的可能性。例如:一年中的季节、操作计算器、用户状态。
案例:
基本枚举案例: 1. package novice.tutorial; /** * 枚举相关内容, * @author XRY * */ public enum enumeration { /** * * 基本枚举 */ PENDING, ACTIVE, INACTIVE, DELETED; } package novice.tutorial; public class TestEnum { /** * 测试类 */ public static void main(String[] args) { //ACTIVE System.out.println(enumeration.ACTIVE); } } 2.枚举 + 实例对象 package novice.tutorial; public enum WhoisRR { ARIN("whois.arin.net"), RIPE("whois.ripe.net"), APNIC("whois.apnic.net"), AFRINIC("whois.afrinic.net"), LACNIC("whois.lacnic.net"), JPNIC("whois.nic.ad.jp"), KRNIC("whois.nic.or.kr"), CNNIC("ipwhois.cuuic.cn"), UNKNOWN(""); private String url; WhoisRR(String url){ this.url = url; } public String url() { return url; } } //测试类 package novice.tutorial; public class Test { public static void main(String[] args) { //whois.arin.net System.out.println(WhoisRR.ARIN.url()); } } 3.枚举+方法+一些逻辑 package novice.tutorial; public enum Operation { PLUS, MINUS, TIMES, DIVIDE; double calculate(double x, double y) { switch (this) { case PLUS: return x + y; case MINUS: return x - y; case TIMES: return x * y; case DIVIDE: return x / y; default: throw new AssertionError("Unknown operations " + this); } } } //测试类 package novice.tutorial; public class TestOperation { public static void main(String[] args) { double result = Operation.PLUS.calculate(1, 2); System.out.println(result); //3.0 } }
补充知识
foreach循环:
可以在不使用下标的时候遍历数组
//格式:
for(type element: array)
{
System.out.println(element);
}
//示例
package array;
public class TestArray {
public static void main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5};
// 打印所有数组元素
for (double element: myList) {
System.out.print(element + " ");
}
}
}
//输出结果:
1.9 2.9 3.4 3.5