草庐IT

integer-math

全部标签

Java 8 - 返回 List (keyset) 反对 List<Map.Entry<Integer, CheckBox>>

我正在尝试使用java8返回一个键值列表(整数),其中选中了值(复选框)。我正在尝试处理的map具有以下形式。Map目的是返回选中复选框值的所有值的键集。如果我执行以下操作checkBoxes.entrySet().stream().filter(c->c.getValue().getValue()).collect(Collectors.toList());然后我得到一个List>无论如何,是否可以在不处理Map.Entry值的情况下在一行中完成所有操作,这样我就可以获得一个整数列表?谢谢 最佳答案 您可以添加一个map调用以从条

java - 处理多平台(dev/integ/valid/prod ...)开发的最佳解决方案是什么?发货流程

我不是很有经验,但我参与过一些大型JavaEE项目(使用maven2),使用非常不同的方法来处理不同平台上的安装/交付。1)其中之一是使用快照进行开发,然后发布组件和主要Web应用程序的Maven版本。因此交付是:war/ear文件列表项属性文件sgdb文件其他一些团队将使用这些文件将新的应用程序版本放到不同的平台上。我认为这个过程是严格的,并且允许你始终轻松地保持生产中传递的不同配置,但它不是很灵活,这个过程有点繁重,它有时会导致我们做一些肮脏的事情,比如重写一个war类修补回归...这是一个电子商务网站,每月有1000万独立访问者,可用性为99.89%。2)我看到的另一个方法是检查

random - 为什么 JDK 既有 Math.random() 又有 Random 类?

仅仅是因为“大型API综合症”还是生成在某些情况下更偏向的随机数?如果是……我认为控制偏见很重要。 最佳答案 他们是一样的,真​​的。只是一个方便的方法。检查javadochere.此外,您可以通过创建随机对象来重新播种,而Math.random()将使用静态Random实例。 关于random-为什么JDK既有Math.random()又有Random类?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c

java - Math.pow 在重复调用时产生不同的结果

升级到Java1.8.0_20后我们的测试系统报错,但是代码没有改。我发现,使用完全相同的输入参数调用的Math.pow()在重复调用时会产生不同的结果。在Java1.8.0_11中,它的行为符合预期并始终返回相同的值,但在Java1.8.0_20及更高版本中,它有时会返回略有不同的值。这类似于问题Math.powyieldsdifferentresultdependingonjavaversion,但有所不同,因为pow()的结果在一个VM中不同。以下JUint测试在Java1.8.0_20及更高版本下运行时失败importstaticorg.junit.Assert.assertE

java - 为什么 Math.pow(int,int) 比我天真的实现慢?

昨天看到一个问为什么Math.pow(int,int)这么慢的问题,但是这个问题措辞不当,没有研究成果,所以很快就关了。我自己做了一些测试,发现Math.pow方法在处理时确实比我自己的幼稚实现(甚至不是特别有效的实现)运行得非常慢带有整数参数。下面是我运行的测试代码:classPowerTest{publicstaticdoublemyPow(intbase,intexponent){if(base==0)return0;if(exponent==0)return1;intabsExponent=(exponent在我的电脑上(linux在intelx86_64cpu上),输出几乎总

java - Float vs double Math Java

以下是否存在精度差异(假设a和b的值可以在不损失精度的情况下用float表示)。有花车:floata;floatb;doubleresult=1+a*b;double:doublea;doubleb;doubleresult=1+a*b; 最佳答案 简单的例子:floata=16777217;//Largestintexactlyrepresentableinafloat.floatb=16777217;System.out.println((double)(1+a*b));doublec=16777217;doubled=1677

java - Math.round MAX 返回值

我正在使用Math.round,我发现它不会返回任何大于(2^32/2)-1的值,但文档说明它可以/将返回长值,即2^64...下面有一段代码。longbTmp=(long)Math.round(4294967296L);System.out.println(bTmp);System.out.println(Long.MAX_VALUE);哪个输出:21474836479223372036854775807我错过了什么吗? 最佳答案 它正在调用Math.round()的重载,它接受一个float并返回一个int。看thejavado

32 位签名二进制字符串的 Java Integer.parseInt() 抛出 NumberFormatException

这是JavaApi的错误吗?inti=0xD3951892;System.out.println(i);//-745203566StringbinString=Integer.toBinaryString(i);intradix=2;intj=Integer.valueOf(binString,radix);Assertions.assertThat(j).isEqualTo(i);我希望毫无疑问这是真的。但它抛出以下异常:java.lang.NumberFormatException:Forinputstring:"11010011100101010001100010010010"a

java - Commons-math 四舍五入双倍

我正在使用commons-math3.6.1。我需要将double值四舍五入为小数点后两位假设这是我的双重值(value):doubled=400.54540997260267;现在通过四舍五入我期望的结果400.54相反,如果我的号码是双倍d1=400.54640997260267;我期待的结果是400.55现在我正在使用这段代码:Precision.round(d,2,BigDecimal.ROUND_DOWN);如果我使用roundingMethodBigDecimal.ROUND_DOWN我总是得到最低的四舍五入。我应该使用哪种舍入方法才能得到我期望的结果?我尝试了以下代码:p

java - 将 Arraylist<String> 转换为 ArrayList<Integer> 或整数数组

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭11年前。我想制作一个需要转换的应用ArrayList[]至ArrayList[],我也用过这个:ArrayList[]strArrayList;intArrayRes=(int)strArrayList[];但是这段代码给我一个错误,任何人都可以帮助我吗?任何建议将不胜感激