Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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 我试图比较两个数组内部的循环_Java_Oop_For Loop - Fatal编程技术网

Java 我试图比较两个数组内部的循环

Java 我试图比较两个数组内部的循环,java,oop,for-loop,Java,Oop,For Loop,我正在创建一个彩票程序,我想将中奖号码与玩家号码进行比较,如果任何号码匹配,他们就会中奖。我在match()方法中使用了count来实现这一点,但是当我尝试比较其他类PLAYER和WINNINGNUMBERS中的两个数组getWinningNumbers()和getNumbers()时,它出现了一个错误。我得到的错误是“实际参数和形式参数长度不同”,但我不确定如何解决这个问题。我也是第一次使用链表。任何帮助都将不胜感激 我遇到问题的代码段位于彩票类中的match()方法中 public void

我正在创建一个彩票程序,我想将中奖号码与玩家号码进行比较,如果任何号码匹配,他们就会中奖。我在match()方法中使用了count来实现这一点,但是当我尝试比较其他类PLAYER和WINNINGNUMBERS中的两个数组getWinningNumbers()和getNumbers()时,它出现了一个错误。我得到的错误是“实际参数和形式参数长度不同”,但我不确定如何解决这个问题。我也是第一次使用链表。任何帮助都将不胜感激

我遇到问题的代码段位于彩票类中的match()方法中

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++;
            }