0

我学习Java并用数组构建了一个程序:

com[0]="one";
com[1]="two";
com[2]="three";
[...]
com[9]="ten";

每个数组字符串都是一条诫命(我的程序是 10 条诫命)。

我想检查是否已经阅读了一条诫命。所以,我认为使用带有字符串数组和布尔数组的多维数组。

有可能吗?做这个的最好方式是什么?

谢谢!

4

3 回答 3

3

这里不需要多维数组,这只会增加复杂性。你只需要一个类诫命:

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);
于 2012-12-27T11:56:57.827 回答
1

有一个单独的数组,长度相同,并且该数组的索引与您的 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”放入,然后检查它是否已被阅读,使其阅读,然后再次检查。

于 2012-12-27T11:56:34.050 回答
1

或者你可以使用两个集合

String[] commandments="zero,one,two,three,four,five,six,seven,eight,nine,ten".split(",");
BitSet read = new BitSet(commandments.length);
于 2012-12-27T12:12:17.950 回答