В отсортированных массивах найти количество совпадений, т.е. чисел в двух массивах с одинаковым индексом

Помогите, пожалуйста, решить задачу.

Необходимы два массива из 7-ми цифр заполненных цифрами от 0 до 9.
Первый массив - это числа загаданные компанией (random), которая организовывает лотерею. Второй массив - это числа которые угадал игрок (вводим из консоли).
После того, как оба массива заполнены цифрами, нужно отсортировать их по возрастанию любым способом.

В отсортированных массивах необходимо найти количество совпадений, т.е. чисел в двух массивах с одинаковым индексом.
Например: first[3] должен быть равен second[3], как показано ниже.

Пример вывода в консоль (совпали 1й, 4й и 6й элементы):

[0, 1, 4, 5, 5, 8, 9]
[1, 1, 2, 3, 5, 6, 9]
Количество совпадений: 3

Начало вроде написал, а дальше, понимаю, надо прогнать через цикл, только как, не знаю.

class new2{
    public static void main(String[] args) {
        int first[] = new int[7];
        for(int i = 0; i < first.length; i++) {
            first[i] = (int)(Math.random() * 10);
        }
        Arrays.sort(first);
 
 
        System.out.println("Введите 7 цифр от 0 до 9: ");
        Scanner sc = new Scanner(System.in);
        int second[] = new int[7];
        for(int i=0; i< second.length;i++){
            second[i] = sc.nextInt();
 
        }
        Arrays.sort(second);
        System.out.print(Arrays.toString(first));
        System.out.println("");
        System.out.print(Arrays.toString(second));
    }
}


Ответы (2 шт):

Автор решения: Alexandr

Вам необходимо просто сравнить соотвествующие позиции каждого массива между собой:

package com.somepackage;

import java.util.stream.IntStream;

public class Main {

    public static void main(String[] args) {
        int length = 7;
        int[] first = {1, 2, 3, 4, 5, 6, 7};
        int[] second = {1, 2, 3, 4, 5, 6, 8};
        long count =
                IntStream.range(0, length)
                        .filter(i -> first[i] == second[i])
                        .count();
        System.out.println("Количество совпадений:" + count);
    }

}
→ Ссылка
Автор решения: Анастасия

Просто добавьте еще один цикл for, в котором сравнивайте значения массивов, и если совпадает, увеличивайте значение счетчика. Как-то так:

    class new2{
    public static void main(String[] args) {
        int first[] = new int[7];
        for(int i = 0; i < first.length; i++) {
            first[i] = (int)(Math.random() * 10);
        }
        Arrays.sort(first);
 
        System.out.println("Введите 7 цифр от 0 до 9: ");
        Scanner sc = new Scanner(System.in);
        int second[] = new int[7];
        for(int i=0; i< second.length;i++){
            second[i] = sc.nextInt();
        }
        Arrays.sort(second);
        System.out.print(Arrays.toString(first));
        System.out.println("");
        System.out.print(Arrays.toString(second));

        //до этого момента без изменений

        int count = 0; //СЧЕТЧИК совпадений
        for(int i=0;i<second.length;i++){
            if(first[i]==second[i]) count++; //Если цифры равны, счетчик увеличиваем на 1
        }
        System.out.println("Совпадений: "+count);
    }
}
→ Ссылка