草庐IT

boolean-logic

全部标签

java - 如何使用 Java 制作真正大的 boolean 数组?

当我尝试使用Java创建一个非常大的boolean数组时,例如:boolean[]isPrime1=newboolean[600851475144];我得到了可能的精度损失错误?是不是太大了? 最佳答案 要存储600亿位,您需要绝对最小地址空间75千兆字节!祝你好运!更糟糕的是,Java规范没有指定boolean数组将为每个元素使用一个内存位——它可以(andinsomecasesdoes)使用更多。无论如何,我从ProjectEuler#3中认出了那个数字.如果它需要那么多内存,那你就做错了......

java - 为什么 org.apache.commons.lang.BooleanUtils.isTrue(Boolean bool) 使用三元运算符?

我无缘无故地F3进入这个,并且惊讶地看到这个方法实现如下:publicstaticbooleanisTrue(Booleanbool){if(bool==null){returnfalse;}returnbool.booleanValue()?true:false;}为什么不呢?publicstaticbooleanisTrue(Booleanbool){if(bool==null){returnfalse;}returnbool.booleanValue();}这并不重要,所以我想知道这样做有什么好处吗?可读性是一个足够弱的论据,我认为这是噪音。除非我缺少其他一些好处。

java - 对于 boolean 值,(p ^ q) 和 (p != q) 之间是否存在有用的区别?

Java有两种方法来检查两个boolean值是否不同。您可以将它们与!=或^(xor)进行比较。当然,这两个运算符在所有情况下都会产生相同的结果。尽管如此,将它们都包括在内还是有意义的,例如在What'sthedifferencebetweenXORandNOT-EQUAL-TO?中讨论过的。.对于开发人员来说,根据上下文更喜欢一个甚至是有意义的——有时“这些boolean值中的一个是真的”读起来更好,而其他时候“这两个boolean值是否不同”更好地传达了意图。所以,也许使用哪一个应该是品味和风格的问题。令我吃惊的是javac并没有对它们一视同仁!考虑这个类:classTest{pu

java - 允许比较 `boolean` 和 `Object` 是否相等?

下面的代码publicclassTestComparison{publicstaticvoidmain(String[]args)throwsException{booleanb=true;Objecto=newBoolean(true);System.out.println("comparisonresult:"+(o==b));//Eclipsecomplainsaboutthisexpression}}使用javacV1.7.0_15编译没有错误,运行时打印“false”。但是,EclipseJuno提示“不兼容的操作数类型对象和boolean值”。显然javac自动装箱原始bo

java - 是否可以使用 XOR 来检测多个条件中的一个是否为真?

例如,if(bool1^bool2^bool3^bool4){//Dowhatever}它应该只在恰好满足其中一个条件时执行。 最佳答案 将boolean值作为整数相加并检查它们是否等于1。在无法将boolean值转换为整数的语言中,例如Java,更冗长的选项是:if((bool1?1:0)+(bool2?1:0)+(bool3?1:0)+(bool4?1:0)==1){//onlyrunswhenoneofbool1-4istrue}但是,在将boolean值转换为整数有效的其他语言中,您可以执行以下操作:if((int)(boo

Java:高效存储 boolean 值[32]?

在Java中,我想将长度为32的boolean值(boolean[])数组存储(>10'000)到磁盘,稍后再次读取它们以进行进一步计算和比较。由于单个数组的长度为32,我想知道将其存储为整数值以加快读写速度(在32位机器上)是否有意义。您会建议使用BitSet然后转换为int吗?或者甚至忘记int并使用字节? 最佳答案 对于二进制存储,使用int和一个DataOutputStream(DataInputStream用于读取)。我认为boolean数组在Java内部存储为byte或int数组,因此您可能需要考虑避免开销并始终保持in

java - Java 中 boolean 动词的变量和方法命名约定?

这个问题在这里已经有了答案:Javanamingconventionforbooleanvariablenames:writerEnabledvswriterIsEnabled(4个答案)Booleanmethodnamingreadability(13个答案)关闭6年前。我知道很多人建议这个约定:booleandeleted;booleanisDeleted();但是当您想命名一个boolean值来指示用户可以离开时,您会怎么做?booleanuserCanLeavebooleanisUserCanLeave()booleancanUserLeavebooleanisCanUserL

java - 以 "is"为前缀的 boolean 属性名称是否仍然是有效的 Java Bean?

我刚刚注意到一些我不知道的事情。privatebooleanisCertified;publicbooleanisCertified(){returnisCertified;}publicvoidsetCertified(booleancertified){isCertified=certified;}以下getter和setter已由Intellij生成。顺便说一句,Lombok生成相同类型的getter和setter。我本以为会是这样的:privatebooleanisCertified;publicbooleanisIsCertified(){returnisCertified;

java - 为具有前缀 "has"的 boolean 成员编辑 lombok getter 方法名称

我在lombok中有一个boolean变量hasObject,它生成isHasObject()。我正在使用@Datalombok注释。如何将方法更改为hasObject() 最佳答案 在你的情况下它可能是:classXY:Object{@Getter(fluent=true)publicbooleanhasObject;}或@Accessors(fluent=true)classXY:Object{publicbooleanhasObject;}根据文档:fluent-Aboolean.Iftrue,thegetterforpepp

C++:将按位与的结果分配给 boolean 值

我在C++中有以下循环,使用g++4.1.2编译:while(1){intstatus=getStatus();boolfirstOk=status&0x1;boolsecondOk=status&0x2;if(firstOk!=m_firstOk){logStatus(1,firstOk);m_firstOk=firstOk;}if(secondOk!=m_secondOk){logStatus(2,secondOk);m_secondOk=secondOk;}sleep(1);}注意logStatus()通过值接收它的参数,所以参数没有被修改。m_firstOk和m_secondO