Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Arrays.asList()存在问题_Java - Fatal编程技术网

Java Arrays.asList()存在问题

Java Arrays.asList()存在问题,java,Java,我有一个非常简单的程序,我只需要检查数组中的值。 我有一个叫做bulkBean的类。就是这样 public class bulkBean { private int installmentNo; private double amount; public int getInstallmentNo() { return installmentNo; } public void setInstallmentNo(int installmentN

我有一个非常简单的程序,我只需要检查数组中的值。 我有一个叫做bulkBean的类。就是这样

public class bulkBean {
   private int installmentNo;
   private double amount;

    public int getInstallmentNo() {
        return installmentNo;
    }

    public void setInstallmentNo(int installmentNo) {
        this.installmentNo = installmentNo;
    }

    public double getAmount() {
        return amount;
    }

    public void setAmount(double amount) {
        this.amount = amount;
    }

}
现在我的程序中有了一个bulkBean类型的数组,这是我的程序

import java.util.Arrays;

public class test {

    public static boolean scan_bulkList(bulkBean[] bulkList, int i) {

        int[] arr = new int[bulkList.length];

        for(int x=0;x<bulkList.length;x++){
            arr[x] = bulkList[x].getInstallmentNo();
        }

        for(int j = 0; j< arr.length ;j++){

            System.out.println("INFO: array "+j+" = "+arr[j]);

        }

        if (Arrays.asList(arr).contains(i) == true) {
            return true;
        } else {
            return false;
        }

    }

    public static void main(String[] arg){

        bulkBean bb1 = new bulkBean();
        bb1.setInstallmentNo(1);
        bb1.setAmount(5500);

        bulkBean bb2 = new bulkBean();
        bb2.setInstallmentNo(2);
        bb2.setAmount(4520);

        bulkBean[] bulkArray = new bulkBean[2];
        bulkArray[0] = bb1;
        bulkArray[1] = bb2;

        boolean a = scan_bulkList(bulkArray,1);
        System.out.println("val = "+a);

    }
}
导入java.util.array;
公开课考试{
公共静态布尔扫描bulkList(bulkBean[]bulkList,int i){
int[]arr=newint[bulkList.length];

for(int x=0;x
Arrays.asList()
返回一个包含单个元素的列表-数组。因此,您实际上是在与数组进行比较。您需要与数组中的每个值进行比较。

正如作者所说,
Arrays.asList()
接受
int[]
提供一个包含数组的列表

就我个人而言,我会直接构造列表,而不是构造数组,或者更好(不需要数组实例),在迭代批量数组时进行测试:

for(int x=0;x<bulkList.length;x++){
    if (bulkList[x].getInstallmentNo() == i){
         return true;     
    }
}
return false;

for(int x=0;x更改方法如下,以避免并发症:

public static boolean scan_bulkList(bulkBean[] bulkList, int i) {

        int[] arr = new int[bulkList.length];

        for(int x=0;x<bulkList.length;x++){
            arr[x] = bulkList[x].getInstallmentNo();
            if (bulkList[x].getInstallmentNo()==i) {
                return true;
            }                             
        }
   return false;

}
publicstaticbooleanscan\ubulklist(bulkBean[]bulkList,inti){
int[]arr=newint[bulkList.length];

对于(int x=0;x您在这里犯的错误是,您创建的int数组必须是整数数组,因为
Arrays.asList().contains(Object o);
使输入参数也
Integer(Integer i)
int
不是对象
Integer
是对象。希望它能工作

int[] arr = new int[bulkList.length];
改为:

Integer[] arr = new Integer[bulkList.length];

Arrays.asList(arr)他正在传递arr={1,24,54,23456}而不是一个值。它将把这个数组转换成List[1,24,54,23456]@ShoaibChikate-这个列表只包含一个元素,即数组。检查列表的大小。+1同意。我认为更改
int[]arr=new int[bulkList.length];
Integer[]arr=new Integer[bulkList.length];
将使列表包含
Integer
s,而不是
int[]
数组。@TheLost Mind我没有得到您想要的said@Eng.Fouad-这应该是一个答案:p你知道,你可以返回
Arrays.asList(arr).contains(i)
。请返回sopln(Arrays.asList(arr))检查你是否得到了正确的列表,并遵循@Alexander_Winter的建议。@Alexander_Winter-它不会起作用。将
int[]arr=new int[bulkList.length];
更改为
Integer[]arr=new Integer[bulkList.length];
。类似的问题-谢谢你这样编辑它是正确的。
bulkList[i].getInstallmentNo()==i
批量列表[x]。getInstallmentNo()==i
。任何快速编写感谢信的方式通常都是不好的。多亏了它