Bueno hoy me vi en la necesidad de hacer una multiplicación de matrices en Java, las matrices no necesariamente son cuadradas pero obviamente deben cumplir con la propiedad de: Número de filas de la primera debe ser igual al número de columnas de la segunda…

Total que busqué un algoritmo o método ya hecho para solo copiar y pegar pues me daba flojera programarlo, pero como no encontré nada útil pues terminé programándolo yo. Y por eso dejo aquí el código de la clase y el método:

public final class Matriz {
	/**
	 * Multiplica dos matrices
	 * @param int[][] Matriz A
	 * @param int[][] Matriz B
	 * @return int[][] Matriz producto
	 */
	private static int[][] producto(int A[][], int B[][]){
		int suma = 0;
		int result[][] = new int[A.length][B.length];
		for(int i = 0; i < A.length; i++){
			for(int j = 0; j < B.length; j++){
				suma = 0;
				for(int k = 0; k < B.length; k++){
					suma += A[i][k] * B[k][j];
				}
				result[i][j] = suma;
			}
		}
		return result;
	}
}
Lenguaje del código: Java (java)

El método es estático pues está dentro de una clase final (no instanciable ni extendible). De modo que para hacer una multiplicación solo basta con:

// Se asume que matriz A y matriz B ya están declaradas y son diferente a null

int matrizProducto[][] = Matriz.producto(matrizA, matrizB);
Lenguaje del código: Java (java)

Esta clase solo funciona para datos de tipo Integer, si lo necesitas en Float o Double, solo es cuestión de cambiar la declaración del método en el código y de las variables locales suma y result. Espero que a más de uno le sirvan así como les sirvieron tambien los scripts para resolver matrices con el método de Gauss en PHP.