jjzjj

java - 计算 n 个 boolean 值的 "trues"的数量

Booleana,b,c,d;我想计算true的数量,每个结果都应该有自己的关联操作。也许是这样的:intresult=getResult(a,b,c,d);switch(result){case0:break;case1:break;case2:break;case3:break;default:break;}知道如何以一种漂亮的方式编写getResult方法体吗?在这个例子中,我只使用了四个,但它应该可以扩展到更多的boolean值。欢迎任何其他方式继续。 最佳答案 写一个可变参数方法?intgetResult(boolean.

java - 访问/写入 boolean 对象是否需要同步

这似乎是一个非常愚蠢的问题。考虑一下:我有一个带有getter和setter的简单boolean对象。现在,这两种方法都非常频繁地从许多线程中调用。我需要同步这个boolean值吗?boolean赋值也是原子操作吗?[更新]:我已经知道AtomicBoolean。我已经有很多不同的解决方案,但我专门为上述2个问题寻找答案和答案的理由。 最佳答案 不,boolean访问不是原子的(在机器代码级别上),尽管它确实“在Java中只需要1个操作”。因此,是的,您确实需要同步boolean值。请参阅thispresentation的幻灯片4-

java - 当开关不支持 boolean 数据类型时,为什么 boolean 表达式在 case block 中有效?

昨晚看了一些SCJP认证,开始思考switch语句以及表达式是如何求值的,有点疑惑。Java不会让你打开一个boolean值,所以下面的代码不会编译:publicstaticvoidswitchOnBoolean(booleantheBool){System.out.println("\n\nAssessingboolean:"+theBool);//linebelowwon'tcompile,sincebooleansarenotvalidfortheswitchstatementswitch(theBool){casetrue:{System.out.println("Theboo

java - HashMap<String, boolean> 将所有键复制到 HashMap<String, Integer> 并将值初始化为零

什么是最好的方法?只是遍历并放置键和零,或者是否有另一种更优雅或现有的库方法。如果Google的guavajava库有任何有用的功能,我也在使用它吗?想检查是否有类似于列表复制方法或Map的putAll的方法方法,但仅用于键。 最佳答案 不要认为这里需要什么花哨的东西:Mapmap=...;MapnewMap=Maps.newHashMapWithExpectedSize(map.size());for(Stringkey:map.keySet()){newMap.put(key,0);}如果你确实想要Guava的一些花哨的东西,有

java - 如何打印出这个 boolean 值? ( java )

我尝试了几种不同的方法,例如print(booleanisLeapYear)和其他一些方法,但我不知道如何让它起作用。它总是说我缺少一个类(boolean值是原始的,它需要一个吗?)无论如何,如果isLeapYearif-else语句是错误的,我不担心那些......我只需要弄清楚如何打印输出boolean值;非常感谢任何指向正确方向的帮助/点=]importjava.util.Scanner;publicclassbooleanfun{booleanisLeapYear;publicstaticvoidmain(String[]args){System.out.println("En

java - 在 Java 中将原始类型作为输出参数传递

我需要在从方法返回内容列表时返回/更新boolean值。Java不能返回元组,我不想为此创建一个单独的类,所以我想我会把bool作为输出参数传递。这就是我们的C++客户端所做的,通过引用传递bool。这对于普通类是有效的,因为java对对象有pass-by-ref(参见IsJava"pass-by-reference"or"pass-by-value"?对此有很好的讨论)。但是像Boolean这样的“Wrapper”类将它们的原始值存储为不可变的,所以它不能以这种方式更新。使用boolean数组(只有一个条目)看起来很古怪,但也许是最简单的方法。或者,可以返回boolean值并将创建的

java - 短路与非短路运算符

我理解下面的区别(至少对于Java):if(true||false)//short-circuitingbooleanoperatorif(true|false)//non-short-circuitingbooleanoperator但我的问题是,在处理boolean表达式时是否有任何理由使用非短路运算符?是否有一些性能优势或使用不会被认为是坏的练习? 最佳答案 您可能想要使用非短路运算符的一个原因是您是否以某种方式依赖于函数的副作用。例如。booleanisBig(Stringtext){System.out.println(t

java - 噪声产生 : 'Room Noise'

上周我正在开发一个世界生成器(用于Minecraft模组)。但是,我不只是在寻找Perlin噪声,而是在寻找基于细胞噪声的东西。我想生成一种地下实验室,存在几个不同大小的房间。为了解释这个问题,我使用了二维示例。噪声发生器获取一个网格单元位置(intx,inty),并返回具有以下结构的对象:booleantop;booleanright;booleandown;booleanleft;introomType;4个boolean值代表启用或禁用的墙:roomType分别代表房间的类型。最终的结果应该是这样的:在这里,背景棋盘图案代表基础网格,黑线代表墙壁。这只是一个可以生成的简单示例,但

java - Java中 boolean 数组的大小是多少

据我所知,boolean值大小为16字节{8作为header,1有效载荷,*对齐到8}如果boolean变量是一个数组需要多少...我的reference 最佳答案 你问的是Boolean对象还是boolean原语?对象的大小可能是16个字节(尽管可能取决于实现),而boolean可能会消耗4个字节(隐式使用int)。因此boolean[]将消耗N*4字节(其中N是数组的大小)+一些对象header。Boolean[]将消耗N*16+header(根据您对Boolean大小的假设。话虽这么说,请考虑编写您自己的类数组类并将32个bo

java - 使用标志或 if 子句效率更高吗?

在Java循环中,使用boolean标志而不是if语句是否更有效?看看这两段代码。使用标志:publicbooleanisSomethingForAnyone(){booleanflag=false;for(Itemitem:listOfItems){flag=flag||item.isSomething();}returnflag;}使用if语句:publicbooleanisSomethingForAnyone(){for(Itemitem:listOfItems){if(item.isSomething())returntrue;}returnfalse;}如果isSomethi