Java中枚举怎么遍历?

Python09

Java中枚举怎么遍历?,第1张

我们可以通过反射, 以及枚举类的静态方法values()来进行遍历:

代码:

enum Rating {

UNRATED, G, PG, PG13, R, NC17

}

public class Test {

public static void main(String args[]) {

System.out.println("第一种通过反射")

Class clz = Rating.class

for (Object obj: clz.getEnumConstants()) {

System.out.println(obj)

}

System.out.println("第二种通过枚举静态方法values()")

for (Rating rate: Rating.values()) {

System.out.println(rate)

}

}

}

运行结果:

第一种通过反射

UNRATED

G

PG

PG13

R

NC17

第二种通过枚举静态方法values()

UNRATED

G

PG

PG13

R

NC17

每个问题只有对、错2种情况的话,每个问题相当于1个bit。

10个问题就是10个bit

循环从0到0b11111 11111,逐个打印数字

即从0到1023循环

for(int i=0i<1024i++){

System.out.println(i)//每个i保留10个bit,这10个bit的每个bit就代表每个问题的对错

}

比如

1000这个值,二进制为1111101000

可以理解成“对对对对对错对错错错”

0理解成00000 00000,代表全错

1023理解成11111 11111代表全对

从0到1023就是所有的可能

这是最高效节省的表示法。