Tag: 整数

Android / Java:将数字四舍五入得到无小数

如何将十进制数舍入为整数。 3.50 => 4 4.5 => 5 3.4 => 3 你是如何用Java做到的? 谢谢!

如何在generics中将一个整数元素添加到通配符的ArrayList中?

我有一个ArrayList通用通配符类型,它将Number作为extends。 我试图将整数值添加到ArrayList。 但它给了我一个错误的说法 ArrayList numberList = new ArrayList(); numberList = new ArrayList(); numberList.add(100); 方法add(int,capture#2-of?)在类型ArrayList中不适用于参数(int)。 我也试过这种方式,但是给了我同样的错误 ArrayList numberList = new ArrayList(); numberList = new ArrayList(); numberList.add(100); 错误是: 方法add(int,capture#2-of?)在类型ArrayList中不适用于参数(int)

使用递归来反转整数而不使用字符串

我已经尝试了一段时间但是无法让它发挥作用。 我试图有一个方法来反转整数而不使用字符串或数组。 例如,123应以整数forms反转为321。 我的第一次尝试: /** reverses digits of integer using recursion */ public int RevDigs(int input) { int reverse = 0; if(input == 0) { return reverse; } int tempRev = RevDigs(input/10); if(tempRev >= 10) reverse = input%10 * (int)Math.pow(tempRev/10, 2) + tempRev; if(tempRev 0) reverse = input%10*10 + tempRev; if(tempRev == 0) reverse = […]

比较两个整数:为什么== true?

可能重复: 包装类和==运算符 嗨,当我比较整数与==我有一些问题所以你能解释我为什么第二次测试也成功吗? @Test public void integerTest() { Integer prvni = 127; Integer druhy = 127; Integer treti = 128; Integer ctvrty = 128; assertTrue(prvni == druhy); assertTrue(treti != ctvrty); }

为什么整数在Java中是不可变的?

我知道整数在Java中是不可变的。 但为什么这样设计呢? 在提出这个问题之前,我通过了其他答案: 整数是不可改变的 i ++仍在为Java中的不可变Integer工作? 为什么Java包装类是不可变的? 但我找不到强制使用Integer不变的用例。 是否存在类似String的技术原因? 字符串在网络连接,数据库URL等中用作参数。如果它是可变的,它很容易被破坏。 支持StringPool工具。 支持将字符串用作参数的类加载机制。 字符串是可变的导致加载错误的类。 我知道像AtomicInteger这样的包装器是可变的。 更新: 从谈话中,没有普遍的理由可以强制整数是不可变的。 然而,通过做不可变,它提供了答案中提到的一些奖励。 比如安德烈的这句话 缓存的可能性。 其他人正在减少全球状态 更容易multithreading

Java:如何执行向-Infinity而不是0舍入的整数除法?

( 注意 :与其他问题不同,因为OP从未明确指定向0或-Infinity舍入) JLS 15.17.2说整数除法向零舍入 。 如果我想要积极除数的类似floor()的行为(我不关心负除数的行为),那么实现这一点的最简单方法是在数值上对所有输入都是正确的吗? int ifloor(int n, int d) { /* returns q such that n = d*q + r where 0 <= r 0 * * d = 0 should have the same behavior as `n/d` * * nice-to-have behaviors for d < 0: * option (a). same as above: * […]

检查整数以查看它是否包含零

给定一个整数,你如何使用Java检查它是否包含0? 1 =好 2 =好 … 9 =好 10 =坏! 101 =坏! 1026 =坏! 1111 =好 如何才能做到这一点?

安全整数中间值公式

我正在寻找一个在Java中工作的高效公式,它计算以下表达式: (low + high) / 2 用于二进制搜索。 到目前为止,我一直在使用“低+(高 – 低)/ 2”和“高 – (高 – 低)/ 2”来避免某些情况下的溢出和下溢,但不是两者都有。 现在我正在寻找一种有效的方法,可以用于任何整数(假设整数范围从-MAX_INT – 1到MAX_INT)。 更新 :结合Jander和Peter G.的答案并进行实验一段时间我得到了中值元素及其近邻的以下公式: 最低中点(等于floor((low + high)/2) ,例如[2 3] – > 2,[2 4] – > 3,[-3 -2] – > -3) mid = (low & high) + ((low ^ high) >> 1); 最高中点(等于ceil((low + high)/2) ,例如[2 3] – […]

使用inheritance的重载方法

我有两节课: public class ClassA { public void method(Number n) { System.out.println(“ClassA: ” + n + ” ” + n.getClass()); } } 和: public class ClassB extends ClassA { public void method(Integer d) { System.out.println(“ClassB: ” + d + ” ” + d.getClass()); } } 但是当我跑步时: ClassA a = new ClassB(); a.method(3); 我明白了: ClassA: 3 class […]

Java整数Min_Value为负,然后比较

我明天有考试,我无法理解我的书籍解释,我很感激帮助: public class TestClass{ public static void main(String[] args) throws Exception{ int a = Integer.MIN_VALUE; int b = -a; System.out.println( a+ ” “+b); } } 输出: -2147483648 -2147483648 为什么打印2个相同幅度的负数而不是正数和负数?