我学习Java并用数组构建了一个程序:
com[0]="one";
com[1]="two";
com[2]="three";
[...]
com[9]="ten";
每个数组字符串都是一条诫命(我的程序是 10 条诫命)。
我想检查是否已经阅读了一条诫命。所以,我认为使用带有字符串数组和布尔数组的多维数组。
有可能吗?做这个的最好方式是什么?
谢谢!
我学习Java并用数组构建了一个程序:
com[0]="one";
com[1]="two";
com[2]="three";
[...]
com[9]="ten";
每个数组字符串都是一条诫命(我的程序是 10 条诫命)。
我想检查是否已经阅读了一条诫命。所以,我认为使用带有字符串数组和布尔数组的多维数组。
有可能吗?做这个的最好方式是什么?
谢谢!
这里不需要多维数组,这只会增加复杂性。你只需要一个类诫命:
public class Commandment {
private String commandment;
private boolean read;
public Commandment(String commandment) {
this.commandment = commandment;
}
public void setRead(boolean read) {
this.read = read;
}
public boolean isRead() {
return this.read;
}
}
然后你创建一个诫命数组:
com[0]= new Commandment("one");
com[1]= new Commandment("two");
com[2]= new Commandment("three");
要更改为“阅读”:
com[2].setRead(true);
有一个单独的数组,长度相同,并且该数组的索引与您的 String 数组中的索引相关。
可能更好的方法是创建一个像
public class Commandment {
private String com;
private String read;
public (String com) {
this.com = com;
this.read = false;
}
public getCom() {
return com;
}
public isRead() {
return read;
}
public beenRead() {
read = true;
}
}
而是制作一个由这些对象组成的数组。
Commandment[] coms = new Commandment[10];
coms[0] = new Commandment("com1");
System.out.println(coms[0].getCom()+", has been read? "+coms[0].isRead());
coms[0].beenRead();
System.out.println(coms[0].getCom()+", has been read? "+coms[0].isRead());
将创建它,将第一条诫命作为“com1”放入,然后检查它是否已被阅读,使其阅读,然后再次检查。
或者你可以使用两个集合
String[] commandments="zero,one,two,three,four,five,six,seven,eight,nine,ten".split(",");
BitSet read = new BitSet(commandments.length);