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));
知道为什么吗?
最佳答案
在此之后
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
)。
关于java - 什么是atoms变量以及它的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11757844/