![](/img/trans.png)
[英]How can I convert arraylist <String> to arraylist <integer>
[英]How to can i use integer in ArrayList?
当我将EmpNo(Integer)替换为EmpName(String)时,其工作正常。 我的代码不适用于Int。 如果我在数组中搜索字符串可以正常工作,但是当我在数组中搜索Integer时,输出就是找不到员工编号!
int EmpNo[]=new int[a];
switch(a){
case 1:
System.out.print("Enter Employee Number:");
number = Integer.parseInt(reader.readLine());
int y = Arrays.asList(EmpNo).indexOf(number);
if(Arrays.asList(EmpNo).contains(number))
{
System.out.print("Employee Number: "+EmpNo[y]+" \nEmployee Name "+EmpName[y]+" \nSalary "+Salary[y]+"");
}
else
{
System.out.println("Employee Number not Found!!");
}
break;
}
更改
int EmpNo[]=new int[a];
至
Integer EmpNo[]=new Integer[a];
另外,如果之前已经使用过indexOf(),则无需使用contains()。 y的值可以告诉您EmpNo中是否存在数字。 如果y == -1,则在位置y找不到其他员工。
正如David Wallace指出的那样, int[]
不会自动装箱为Integer[]
而是会自动转换为单个对象。
将empNo定义为
Integer [] empNo = new Integer [a] ();
同样,如果indexOf
为-1,则contains
也将为false。
EmpNo
是原始整数的数组。 List<>
无法存储原始数据类型。 它需要Integer
。 因此,当您这样做时:
Arrays.asList(EmpNo)
它返回List<int[]>
而不是List<Integer>
。 因此, contains
和indexOf
显然与int不匹配。
如果可以更改EmpNo
的类型,最简单的解决方案是将其声明为:
Integer[] EmpNo = new Integer[a];
注意Integer
而不是int
。 这应该正常工作。 如果您不能更改EmpNo
的类型,则需要使用此处给出的其他方法:
.contains()会将其中的参数视为string.so,请尝试使用类似
if(Arrays.asList(EmpNo).contains(new Int (number))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.