0
public List<Minterm> completeMinterm(Minterm minterm, String variables){
  List<Minterm> minterms=new ArrayList<Minterm>();

    Minterm m1=new Minterm();
    Minterm m2=new Minterm();
    for (int k = 0; k < minterms.size(); k++) {
        for (int i = 0; i < variables.length(); i++) {
       ..
        }
            m1= minterms.get(k);
            m1.addAtom(new Atom(variables.charAt(i),false));
            m2 = minterms.get(k);
            m2.addAtom(new Atom(variables.charAt(i),true));

        ..
    }
    }

eclipseデバッガーを使用してエラーを見つけましたが、この行を実行すると、追加されたアトムが同時にm2追加される理由がわかりません。m1

m2.addAtom(new Atom(variables.charAt(i)、true));

なぜアイデアはありますか?

4

1 に答える 1

5

この後

m1= minterms.get(k);
m1.addAtom(new Atom(variables.charAt(i),false));
m2 = minterms.get(k);
m2.addAtom(new Atom(variables.charAt(i),true));

m1とm2は同じオブジェクトを指します(から返されますminterms.get(k);)。たとえば、 m1とm2のハッシュコードまたはポインタ()を比較してみることができますm1==m2

于 2012-08-01T11:03:24.397 に答える