草庐IT

integer-math

全部标签

java - 将数字表示为字符串的所有可能字符,Integer.java

在Integer.java中,有如下一段代码:/***AllpossiblecharsforrepresentinganumberasaString*/finalstaticchar[]digits={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};我认为您需要的所有数字/字符都在0-9和字母A到F范围内。只有在表示数字时才会使用字母(A、B、C、

java - 如何在 Java 中将 List<Integer> 转换为 Integer[]?

我试图将Integer的ArrayList转换为Integer[]Integer[]finalResult=(Integer[])result.toArray();但是我有一个异常(exception)Exceptioninthread"main"java.lang.ClassCastException:[Ljava.lang.Object;cannotbecastto[Ljava.lang.Integer;请帮帮我。 最佳答案 需要使用toArray()的版本接受通用参数:Integer[]finalResult=newInteg

java - 当它是一个像更改数组值这样的参数时,如何更改 Integer 值?

这个问题在这里已经有了答案:IsJava"pass-by-reference"or"pass-by-value"?(92个回答)关闭8年前。publicstaticvoidmain(String[]args){Integeri=newInteger(0);int[]arr={1};p1(i);p2(arr);System.out.println(i);System.out.println(arr[0]);}publicstaticvoidp1(Integeri){i=2;}publicstaticvoidp2(int[]i){i[0]=2;}//输出:0,2如何像改变arr的值一样改变

java - 为什么 Integer 变量默认赋值为 null?

我在itester.org上进行了测试并发现了一个我不明白的问题:publicclassRunner{publicstaticIntegeri;publicstaticvoidmain(String[]args){if(i==42){System.out.printf("wow");}}}我之前读过,整数变量默认赋值0。为什么这里赋值为null? 最佳答案 任何引用类型(即任何类型为Object或Object的子类的变量)都有一个默认值null。这包括Integer。另一方面,原语int的默认值为0。

java - Integers.add(Value Of(50))列表之间有什么区别?和 Integers.add(50) 列表;在 java

这两个代码有什么区别:ArraylistlistofIntegers=newArraylist();listofIntegers.add(666);System.out.println("FirstElementoflistofIntegers="+listofIntegers.get(0));和ArraylistlistofIntegers=newArraylist();listofIntegers.add(Integer.ValueOf(666));System.out.println("FirstElementoflistofIntegers="+listofIntegers.g

java - java.lang.Math.PI 等于 GCC 的 M_PI 吗?

我正在用Java和C/C++编写多个引用算法。其中一些算法使用π。我希望每个算法的两种实现都产生相同的结果,而不用不同的四舍五入。到目前为止一直有效的一种方法是使用自定义的pi常量,它在两种语言中完全相同,例如3.14159。然而,当Java和GCC库中已经定义了高精度常量时,定义pi是愚蠢的。我花了一些时间编写快速测试程序、查看每个库的文档以及阅读浮点类型。但我无法说服自己java.lang.Math.PI(或java.lang.StrictMath.PI)等于或不等于math.h中的M_PI。GCC3.4.4(cygwin)math.h包含:#defineM_PI3.1415926

java - 在 Java 的 arrayList 中递增 Integer 的最佳方法

在ArrayList中递增Integer的最简洁的方法是什么?ArrayListints=newArrayList();ints.add(5);ints.add(9);递增最后一个元素最干净的方法是什么?ints.set(ints.size()-1,ints.get(ints.size()-1)+1);我觉得很丑。 最佳答案 您不能就地增加值,因为Integer对象是不可变的。您必须获取ArrayList中特定位置的先前值,递增该值,并使用它替换同一位置的旧值。intindex=42;//whateverindexIntegerva

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 - Math.round 和 Math.ceil 不工作

我正在尝试对用户输入进行四舍五入,但我似乎可以将我的double四舍五入为int。基本上,当我输入4.4999时,它不会四舍五入到5。有什么想法吗? 最佳答案 Math.ceil()返回上限值。它不能更改它作为参数的变量的值,因为Java按值传递参数。所以你需要做hours=Math.ceil(hours); 关于java-Math.round和Math.ceil不工作,我们在StackOverflow上找到一个类似的问题: https://stackover

java - HashMap 类型不是通用的;它不能用参数 <String, Integer> 参数化

这是我今天在尝试实现如下所示的Map时遇到的一个奇怪错误。Mapcache=newHashMap();我正在使用JDK1.7并且不确定为什么会出现此错误,通过添加强制转换来更改上面的行可以消除错误。发帖前看了stackoverflow的相关帖子,这个问题好像很奇怪。Mapcache=(Map)newHashMap(); 最佳答案 检查您是否确实在导入中使用了java.util.HashMap和java.util.Map。 关于java-HashMap类型不是通用的;它不能用参数参数化,我