草庐IT

java - 将 int 存储在 ArrayList 中并将其返回原始变量 int - Java

我收到一个错误,但找不到解决方法。我将一个int添加到ArrayList。intn=1;ArrayListlist=newArrayList();list.add(n);再往下,我试着把它放回另一个int中:grid[y][x]=list.get(0);我也试过这个:grid[y][x]=(int)list.get(0);但是它不起作用,我得到这个错误:found:java.lang.Objectrequired:intgrid[y][x]=(int)list.get(0);^我希望有人能帮助我。 最佳答案 使用类型参数而不是原始的

java - 如何在 Java 中删除整数数组?

假设我有一个数字N。N将是数组的大小。intnumArray[]=newnumArray[N];但是,数组的内容将包含从1到正N的每隔一个数字。这意味着整个大小为N的数组在for循环之后不会填满。所以在for循环之后,我想修剪(或调整)数组,以便数组中不再有任何空槽。示例:假设N=5;这意味着,在for循环之后,从1到5的每隔一个数字将在数组中,如下所示:intarr[]=newint[N];intarr[0]=1;intarr[1]=3;intarr[2]=null;intarr[3]=null;intarr[4]=null;现在,我想在for循环之后修剪(或调整大小),以便保存nu

java - 什么是 "non-static method"错误以及 "this"是如何工作的?

我有几个非常基本的Java问题,我想一劳永逸地最终理解。我有以下一小段代码:publicclassVeryBasicJava{publicstaticvoidmain(String[]args){intx=3;inty=4;swapMe(x,y);}privatevoidswapMe(inta,intb){inta;intb;inttmp=a;this.a=b;this.b=a;}}当我编译时,我得到了可怕的“无法从静态上下文中引用非静态方法swapMe(int,int)”错误。此外,我得到“a已在swapMe(int,int)中定义”和“b已在swapMe(int,int)中定义”我

java - 在 Java 中使用 int a=a+1 和 a++ 的性能差异

在Java中使用inta=a+1和a++有什么性能差异吗?如果是这样,哪个更好,为什么?你能简单解释一下让我理解这一点吗? 最佳答案 首先,Java语言规范没有说明任何关于计时的内容。但是假设我们使用的是典型的编译器,例如Sunsjavac,我们会看到上述所有示例(a++,++a,a+=1,a=a+1)可以被编译成类似这样的东西:iinc指令,处理变量:iload_iinc,1istore_iadd指令,使用堆栈(这里使用变量1作为存储):iload_1iconst_1iaddistore_1由编译器选择最佳的编译方式。例如。它们之

java - 为什么我不能初始化 Map<int, String>?

这个问题在这里已经有了答案:HashMapandintaskey(13个答案)关闭9年前。我想存储一组int/String值,但是ints不一定是增量的,这意味着数据可以是:,,.所以我正在尝试创建与Dictionary等效的C#但它只是无法编译,在行中显示“标记“int”上的语法错误,此标记后预期的尺寸”:privateMapcourses;谁能告诉我这是为什么?一个很好的替代方法来创建一个对象作为int的占位符。和String,然后用一个数组来存储它们?

java - 当我们将 int 参数传递给具有 float 作为一个方法的参数而另一个具有双参数的重载方法时会发生什么

在重载的概念上,我有一个疑惑,那就是.当我用int值重载方法时,方法调用的是float参数方法而不是双参数方法。voidmethod1(floatf){System.out.println('float');}voidmethod1(doublef){System.out.println('double');}methodcall:method1(10);output:float如本link中的java教程所述如果浮点文字以字母F或f结尾,则它是float类型;否则它的类型是double并且它可以选择以字母D或d结尾。对于上述情况,方法调用应该调用双参数方法。但是调用的是float参数

java - Java 中的幂运算符?

当我运行以下VisualBasic代码时:DimbAsDoubleb=(2^16-1)*Math.Sqrt(Math.Sqrt((a/(2^8-1))))(假设a是一个double,其值为15.0)b得到的结果大约是32,275。但是当我运行下面的Java代码时,它应该和上面的一样:doubleb;b=(2^16-1)*Math.sqrt(Math.sqrt((a/(2^8-1))));同样,当a为15时,我得到一个截然不同的结果:大约17。两者都在求解这个方程:为什么会这样?对于我正在从事的工作,VisualBasic会产生我正在寻找的结果。 最佳答案

java - 方法签名中的 final 关键字

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Finalargumentsininterfacemethods-what’sthepoint?在尝试做一些实验时,我遇到了一个问题,该问题在thispage中有所描述。.interfaceB{publicintsomething(finalinta);}abstractclassC{publicintother(finalintb);}classAextendsCimplementsB{publicintsomething(inta){returna++;}publicintother(intb){retur

java - 寻找毕达哥拉斯三胞胎的代码

我目前正在尝试这个问题:APythagoreantripletisasetofthreenaturalnumbers,a,bandc,forwhicha2+b2=c2.Forexample,32+42=9+16=25=52.ThereexistsexactlyonePythagoreantripletforwhicha+b+c=1000.Findtheproductabc.我的代码如下,我认为它应该是正确的,但是网站告诉我我的答案是错误的?有人可以帮我看看我逻辑上的缺陷吗?publicclassPythagoras{publicstaticvoidmain(String[]args){

java - 为什么 Java 库更多地使用常量整数而不是枚举?

我不确定这是否是一个明确的声明,但在我看来,JavaAPI更喜欢常量整数而不是枚举。在我使用过的API部分,我遇到了许多finalstaticint常量,其中可以使用enum代替。曾经我此刻正盯着的这样一个例子:来自java.awt.BasicStroke:publicfinalstaticintCAP_BUTT=0;publicfinalstaticintCAP_ROUND=1;publicfinalstaticintCAP_SQUARE=2;事实上,我认为我从未见过在标准JavaAPI类中使用过枚举。这是为什么?我正在为我自己的应用程序设计一个API(大约比JavaAPI小10亿倍