http://introcs.cs.princeton.edu/java/14array/CouponCollector.java.html
好吧,据我了解,如果
boolean[] found = new boolean
没有初始化,它被赋予了默认的 boolean 值,即 false。但由于 false 的负数为 true (!found[val]
),当所有 boolean 值都设置为默认值 (false) 时,此条件如何起作用?提前致谢。
最佳答案
这里没有什么神秘的。我认为你只是没有仔细阅读代码。以下是相关片段及其“含义”。
boolean[] found = new boolean[N]; // found[i] = true if card i has been collected
found
的所有元素最初都是 false。 (注释记录了 found
数组的不变量。)
if (!found[val]) valcnt++;
如果 !found[val]
为 true(即 found[val]
仍然为 false),则增加计数器 ...
found[val] = true;
...并将 found[val]
设置为 true,这样我们就不会再次计算此 val。
关于java - 理解java中的 boolean 值!array[i],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9346980/