如何比较两个不同类型的数组列表?

时间:2019-06-10 21:06:42

标签: java object arraylist

我采用了一个类类型ArrayList(1个字符串,6个整数),现在我必须将数字与另一个数组进行比较。我如何比较它们?


    ArrayList<customer> customerArray= new ArrayList<customer>();   
    ArrayList<Integer> storeRandomNumbers = new ArrayList<>();
    int[] splitTheArray =new int[10];
    int t=0;

    public void buyTickets()
    {               
        customerArray.add(new customer("Jon", 4, 6, 7,8, 7,9));
        customerArray.add(new customer("Adams", 4, 4, 4,4, 4,4));

        System.out.println(customerArray);
    }        

    public void pickLottery()
    {
        Random rand1 = new Random();

        for(int i = 0; i< 6; i++)
        {
            storeRandomNumbers.add(rand1.nextInt(8)+1);

        }
        System.out.println(storeRandomNumbers);
        //splitTheArray[t++] = Integer.parseInt(customerArray[0][1]);

        System.out.println("Common Items: "+(customerArray.stream().filter(storeRandomNumbers::contains).collect(Collectors.toList())));
    }


}

我希望将customerArray数字与storeRandomNumbers进行比较,并给出匹配的数字

1 个答案:

答案 0 :(得分:0)

在客户类别中添加一种方法,以通过彩票号码列表检查客户号码。假设如果所有客户编号都与彩票编号匹配,则此方法将返回“ true”,否则返回“ false”。

public boolean containsLottery(List<Integer> lotteryList)
{
        boolean result= false;// default result is false
        // implement your solution for finding if the numbers are a match
        return result;
}

您需要在主要代码上进行的更改是以下部分:

List<customer> CommonList = (customerArray.stream().filter(x-> x.containsLottery(storeRandomNumbers)).collect(Collectors.toList())) ;

我在客户类别的版本上对其进行了测试,并且此 .filter(x-> x.containsLottery(storeRandomNumbers))部分似乎可以正常工作。尝试一下,让我知道如何进行。