Java 我试图比较两个数组内部的循环
我正在创建一个彩票程序,我想将中奖号码与玩家号码进行比较,如果任何号码匹配,他们就会中奖。我在match()方法中使用了count来实现这一点,但是当我尝试比较其他类PLAYER和WINNINGNUMBERS中的两个数组getWinningNumbers()和getNumbers()时,它出现了一个错误。我得到的错误是“实际参数和形式参数长度不同”,但我不确定如何解决这个问题。我也是第一次使用链表。任何帮助都将不胜感激 我遇到问题的代码段位于彩票类中的match()方法中Java 我试图比较两个数组内部的循环,java,oop,for-loop,Java,Oop,For Loop,我正在创建一个彩票程序,我想将中奖号码与玩家号码进行比较,如果任何号码匹配,他们就会中奖。我在match()方法中使用了count来实现这一点,但是当我尝试比较其他类PLAYER和WINNINGNUMBERS中的两个数组getWinningNumbers()和getNumbers()时,它出现了一个错误。我得到的错误是“实际参数和形式参数长度不同”,但我不确定如何解决这个问题。我也是第一次使用链表。任何帮助都将不胜感激 我遇到问题的代码段位于彩票类中的match()方法中 public void
public void matches() {
PLAYER currentPlayer = pHead;
int count = 0;
for(int i = 0; i<6; i++) {
for(int j = 0; j< 6; j++) {
if (win.getWinningNumbers(i) == currentPlayer.getNumbers(j)) {
count++;
}
}
}
``````````````````````````````````````````````````````````````````````````
public void matches(){
PLAYER currentPlayer=pHead;
整数计数=0;
对于(int i=0;i,此示例可能对您有所帮助:
List<Integer> winningNumber = new LinkedList<>(Arrays.asList(3, 9, 15, 1, 11, 18));
List<Integer> playerNumbers = new LinkedList<>(Arrays.asList(2, 8, 15, 7, 11, 9));
matches(winningNumber, playerNumbers);
private static void matches(List<Integer> winningNumbers, List<Integer> playerNumbers) {
if(winningNumbers.size() != playerNumbers.size()) {
System.out.println("winning numbers and player numbers differ in size");
}
int counter = 0;
for(int i = 0; i < winningNumbers.size(); i++) {
if(winningNumbers.get(i) == playerNumbers.get(i)) {
counter++;
}
}
System.out.println("Number of matches in position: " + counter);
// if the position of match is not important
long matches = winningNumbers.stream()
.filter(playerNumbers::contains)
.count();
System.out.println("Number of matches: " + matches);
}
List winningNumber=newlinkedlist(Arrays.asList(3,9,15,1,11,18));
listplayernumbers=newlinkedlist(Arrays.asList(2,8,15,7,11,9));
比赛(winningNumber、PlayerNumber);
私有静态无效匹配(列表WinningNumber、列表PlayerNumber){
if(winningNumbers.size()!=playerNumber.size()){
System.out.println(“中奖号码和球员号码大小不同”);
}
int计数器=0;
对于(int i=0;i
位置中的匹配数:2
匹配数:3
也许这个例子可以帮你一点忙:
List<Integer> winningNumber = new LinkedList<>(Arrays.asList(3, 9, 15, 1, 11, 18));
List<Integer> playerNumbers = new LinkedList<>(Arrays.asList(2, 8, 15, 7, 11, 9));
matches(winningNumber, playerNumbers);
private static void matches(List<Integer> winningNumbers, List<Integer> playerNumbers) {
if(winningNumbers.size() != playerNumbers.size()) {
System.out.println("winning numbers and player numbers differ in size");
}
int counter = 0;
for(int i = 0; i < winningNumbers.size(); i++) {
if(winningNumbers.get(i) == playerNumbers.get(i)) {
counter++;
}
}
System.out.println("Number of matches in position: " + counter);
// if the position of match is not important
long matches = winningNumbers.stream()
.filter(playerNumbers::contains)
.count();
System.out.println("Number of matches: " + matches);
}
List winningNumber=newlinkedlist(Arrays.asList(3,9,15,1,11,18));
listplayernumbers=newlinkedlist(Arrays.asList(2,8,15,7,11,9));
比赛(winningNumber、PlayerNumber);
私有静态无效匹配(列表WinningNumber、列表PlayerNumber){
if(winningNumbers.size()!=playerNumber.size()){
System.out.println(“中奖号码和球员号码大小不同”);
}
int计数器=0;
对于(int i=0;i
位置中的匹配数:2
匹配数:3
在matches()
中更改以下代码段:
到
在matches()
中更改以下代码段:
到
不要使用比较引用相等的=
。而不是比较数组是否包含相同的值。不要使用比较引用相等的=
。而不是比较数组是否包含相同的值。
if (win.getWinningNumbers()[i] == currentPlayer.getNumbers()[j]) {
count++;
}