首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Arrays.asList()问题

Arrays.asList()问题
EN

Stack Overflow用户
提问于 2014-10-15 12:07:42
回答 4查看 913关注 0票数 3

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

代码语言:javascript
复制
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类型的数组,这是我的程序。

代码语言:javascript
复制
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);

    }
}

我创建了两个散装bean实例,并为它们设置了值。然后,我将这两个实例添加到数组中。然后,我将该数组传递给方法,以检查值(也是作为参数提供的)。在这种情况下是1.)。如果数组包含该值,则应返回true,否则返回false。不管我输入什么值,它都会返回false。我为什么要面对这个问题?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-10-15 12:20:00

正如TheListMind所告诉的,Arrays.asList()int[]上给出了一个包含数组的列表。

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

代码语言:javascript
复制
for(int x=0;x<bulkList.length;x++){
    if (bulkList[x].getInstallmentNo() == i){
         return true;     
    }
}
return false;
票数 2
EN

Stack Overflow用户

发布于 2014-10-15 12:09:24

Arrays.asList()返回一个只有一个元素的列表-一个数组。因此,您实际上是在与数组进行比较。您需要与数组中的每个值进行比较。

票数 4
EN

Stack Overflow用户

发布于 2014-10-15 12:52:20

这里所犯的错误是,您创建了int数组,它必须是Integer数组,因为Arrays.asList().contains(Object o);使输入参数也是Integer(Integer i)int不是对象,Integer是对象。希望它能成功。

代码语言:javascript
复制
int[] arr = new int[bulkList.length];

改为:

代码语言:javascript
复制
Integer[] arr = new Integer[bulkList.length];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26382217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档