我采用了一个类类型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进行比较,并给出匹配的数字
答案 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))部分似乎可以正常工作。尝试一下,让我知道如何进行。