Apresentar o maior valor e sua posição e o menor valor e sua posição

Alguém poderia me ajudar como apresentar esses valores de uma matriz 4x5 no final do programa?

import java.util.Scanner;
public class Matriz
{
public static void main(String[] args) {
int[][] matriz = new int[4][5];
Scanner leitor = new Scanner(System.in);
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(“Digite o elemento da linha " + (i + 1) + " da coluna " + (j + 1) + “: “);
matriz[i][j] = leitor.nextInt();
System.out.println(””);
}
}
System.out.println(“A Matriz 4x5: \n\n”);
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(matriz[i][j] + " “);
}
System.out.println(””);
}
System.out.println(“Fim”);
}
}

Sou iniciante em java e usando o pouco conhecimento que tenho cheguei nesta solução:

import java.util.Scanner;
public class Matriz {
	public static void main(String[] args) {
		int[][] matriz = new int[4][5];
		Scanner leitor = new Scanner(System.in);
		for (int i = 0; i < 4; i++) {
			for (int j = 0; j < 5; j++) {
				System.out.print(“Digite o elemento da linha " + (i + 1) + " da coluna " + (j + 1) + “: “);
				matriz[i][j] = leitor.nextInt();
				System.out.println(””);
			}
		}
		int num = 0;
		int a = 0;
		int b = 0;
		int num2 = 100;
		int a2 = 0;
		int b2 = 0;
		System.out.println("A Matriz 3x5: \n");
		for (int i = 0; i < 4; i++) {
			for (int j = 0; j < 5; j++) {
				System.out.print(matriz[i][j] + " ");

				if(num < matriz[i][j]) {
					num = matriz[i][j];
					a=i;
					b=j;
				}
				if(num2 > matriz[i][j]) {
					num2 = matriz[i][j];
					a2=i;
					b2=j;
				}
			}
			System.out.println();
		}
		System.out.println();
		System.out.println("Maior é: " + num + " matriz[" + a + "][" + b + "]");
		System.out.println("Menor é: " + num2 + " matriz[" + a2 + "][" + b2 + "]");
		System.out.println("Fim");
	}
}