Crear una matriz en Java

09/jul/2010 Java , 28 Comentarios
java

Una matriz matemática es una tabla bidimensional de números. Las matrices pueden sumarse, multiplicarse,... Y suelen ser utilizadas para describir sistemas de ecuaciones lineales. Leer más sobre matrices en Wikipedia.

Si queremos representar una matriz en Java hay que crear un array bidimensional. Por ejemplo para declarar una matriz de 3x3 haríamos lo siguiente:

  1. int matriz[][] = new int[3][3];

Ahora procedemos a cargar la matriz con valores:

  1. matriz[0][0] = 2;
  2. matriz[0][1] = 4;
  3. matriz[0][2] = 4;
  4. matriz[1][0] = 6;
  5. matriz[1][1] = 6;
  6. matriz[1][2] = 9;
  7. matriz[2][0] = 8;
  8. matriz[2][1] = 10;
  9. matriz[2][2] = 12;

Hay que recordar que los elementos empiezan a numerarse por 0. Así la esquina superior izquierda de la matriz será el elemento [0][0] y la esquina inferior derecha será el [2][2].

Podemos crear e instanciar la matriz en una única línea:

  1. int [][] matriz = {{2,4,4},{6,6,9},{8,10,12}};

De igual manera, si nos apoyamos en el método .lenght del array podremos listar el contenido de la matriz

  1. for (int x=0; x < matriz.length; x++) {
  2. for (int y=0; y < matriz[x].length; y++) {
  3. System.out.println (matriz[x][y]);
  4. }
  5. }

Vídeos sobre Java

Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

28 comentarios en “Crear una matriz en Java”

Víctor Cuervo

Arterias del Abismo

import java.util.Scanner;
import javax.swing.JOptionPane;

public class Suma {
public static void main(String[] args){

int counter = 0;
while (counter < 3) {

Scanner teclat = new Scanner(System.in);
System.out.print("Introdueix el primer número:");
int primerNumero = teclat.nextInt();
System.out.print("Introdueix el segon número:");
int segonNumero = teclat.nextInt();

System.out.print("La suma de "+primerNumero + " i " +segonNumero +" és: ");
System.out.println(primerNumero+segonNumero);

counter = counter +1;
System.out.print("\n");
}
}
}

Víctor Cuervo

jesus

hola quiero saber como puedo imprimir una matriz de 3*3 pero hacia abajo, osea la matriz qesta asi
1 2 3
4 5 6
7 8 9

pero quiero que este asi
1 4 7
2 5 8
3 6 9

Víctor Cuervo

Víctor Cuervo

Jesus,

Hemos publicado ese ejemplo, que es transponer una matriz. Lo puedes encontrar en http://lineadecodigo.com/java/transponer-una-matriz-en-java/

Espero que sea de ayuda.

Saludos.

Víctor Cuervo

Andres_bambarén

Gracias Victor Cuervo por tu aporte, y disculpa por no haber revisado las respuestas, pero en mi desesperación logre hacer esto y me funcionó:
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length; j++) {
int c = a[i][j];
for (int x = 0; x < b.length; x++) {
for (int y = 0; y < b.length; y++) {
int z = b[x][y];
if (c == z) {
Dupli += " " + c;
}
}
}
}
}
System.out.println("Los elementos comunes son: " + Dupli);
JOptionPane.showMessageDialog(null, "Los elementos comunes son: " + Dupli);
}
}

Víctor Cuervo

Víctor Cuervo

@andres_Bambaren,

Tendrás que recorrer las matrices de forma anidada, es decir, mientras recorres la matriz uno, por cada elemento recorrerte la matriz dos (entera o hasta que encuentres el elemento).

El código sería algo así (revisalo, que ni lo he compilado) 😉

for (int x=0; x < matriz.length; x++) {
  for (int y=0; y < matriz[x].length; y++) {
    if (encontrarEnMatriz2(matriz[x][y])
       System.out.println (matriz[x][y]);
  }
}

function encontrarEnMatriz2(int numero){

  boolean encontrado = false;
  int x,y = 0;

  while (x < matriz.length() || !(encontrado)) {
    while (y < matriz.[x].lenght() || !(encontrado)) {
      if (numero == matriz[x][y])
        encontrado = true;
      else
        y++;
    }
    x++;
  }

    return encontrado;
  }
Víctor Cuervo

andres_Bambaren

Holas, tengo dos matrices, y realmente no se como hacer para imprimir los elementos de a que se repiten en b, les agradecería mucho me ayuden con eso.

int a[][]={{10,2,3,10},{4,5,6,11},{17,8,9,12},{13,8,19,10}};
int b[][]={{10,4,13,80},{90,50,60,11},{27,48,9,12},{13,38,92,3}};

Quisiera que me imprima así:
10 3 4 9 12 13

Gracias.

Víctor Cuervo

paula

alguien me puede ayudar con esto por favor?????
public static void main(String[] args) {
Random ent=new Random();

for(int j=0; j < 7; j++){
String A[]={"C", "E", "-", "I", "-", "I", "E"};
System.out.print(" " );
System.out.print(" "+ A[j]);

}

System.out.println("");
for(int i=0; i <5; i++){
for(int j=0; j<5; j++){
String M1[][]={{"$","$","-","-","B"},
{"-","1","-","O","T"},
{"I","X","E","-","O"},
{"S","R","U","-","D"},
{"N","F","Z","L","F"}};
System.out.print(" ");
System.out.print(" "+ M1[i][j]);

}
}

}
lo que pasa es que tiene que empezar desde el final y no se como hacerle para que imprima el texto "feliz fin de curso extito 1b" tiene que ir 1 * 1

Víctor Cuervo

miguel0953

hola, una consulta, como puedo ingresar String (ej colores) por teclado en una matriz, pero que te diga cuando estos sean iguales en las posiciones vecinas de la matriz.

un ejemplo
matriz (2×2)
verde rojo
rojo azul
entonces ahi el rojo esta mal porque son iguales en las posiciones vecinas

Víctor Cuervo

Víctor Cuervo

@juan, y ¿qué es lo que buscabas? ¿cómo podríamos ayudarte?

Saludos.

Víctor Cuervo

juan

no encontre de lo que pedia en lo de java no me ayudaron en nada

Víctor Cuervo

Alain

Hola comunidad, quisiera que alguien me ayude o me pueda explicar de que manera puedo ordenar una matriz de mayor a menor que código se puede usar o que procedimiento estaría bien usar, seria de mucha ayuda 😀

Víctor Cuervo

wily

DADA UNA MATRIZ CON NUMEROS DE TIPO FLOAT, DEVOLVER LA MISMA MATRIZ CON SUS DATOS REDONDEADOS A 3 CIFRAS DECIMALES

Víctor Cuervo

Víctor Cuervo

@fernando,

Es tan sencillo como poner un salto de línea cada vez que pasas de línea.

for (int x=0; x < matriz.length; x++) {
  for (int y=0; y < matriz[x].length; y++) {
    System.out.println (matriz[x][y]);
  }
  System.out.println("\n");
}
Víctor Cuervo

fernando

NO QUIERO IMPRIMIR EN FILA NI EN COLUMNA, QUIERO IMPRIMIR EN FORMA DE MATRIZ
Oye Cres que puedas ayudarme, lo que pasa es que quiero imprimir los datos de un ciclo for(),pero quiero que se imprima en forma de matris en la consola de netbeans o en un jTextArea,…, en donde se al punto es que quiere que se impria mas omenos asi:
for(int i=0; ien consola
jTextArea.setText(i+”\t”);—->el el area de texto
}

la salida quiero que se asi:

1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
y esque a mi me lo imprime de esta forma:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
ME PUEDES AYUDAR PORFA??????

Víctor Cuervo

Víctor Cuervo

@Nelly,

Para el llenado aleatorio puedes generar los números tal y como explicamos en http://lineadecodigo.com/java/numero-aleatorio-en-java/

Espero que te sirva.

Víctor Cuervo

JUAN

int[][] array = new int[][]{ {1,2,3},
{4,5,6},
{7,8,9}};
//para print
System.out.println(array[1][2]);

Víctor Cuervo

Nelly

Y como se logra esto para hacer un llenado aleatorio de la matriz?

Es que estoy tratando de hacer un programa que multiplique dos matrices, pero con llenado automático y aleatorio!!

Víctor Cuervo

Jose Ma.

muchas gracias Nextor, me has salvado la vida

Víctor Cuervo

Nextor

@Jose Ma.

for (int x=0; x < matriz.length; x++) {
for (int y=0; y < matriz[x].length; y++) {
System.out.print(matriz[x][y]+"\t");
}
System.out.println();
}

Víctor Cuervo

Jose Ma.

yo tengo una duda, espero me puedan ayudar, lo que hace este codigo:

for (int x=0; x < matriz.length; x++) { for (int y=0; y < matriz[x].length; y++) { System.out.println (matriz[x][y]); }}

al ejecutarlo muestra en pantalla los datos de la matriz, pero en forma de lista (hacia abajo), como puedo hacer para que los muestre de forma acomodada, osea en forma de matriz de 3×3, sin utilizando igual los ciclos for, ??
muchas gracias

Víctor Cuervo

Víctor Cuervo

@marco,

Puedes compartir tu código para ver el problema?? Nos sería de ayuda a todos.
Si lo pones en nuestro foro Java mejor. 😀
http://www.dudasprogramacion.com/forum/java-basico

Víctor Cuervo

Víctor Cuervo

@max,

Hemos explicado el ejemplo de cómo hacer un for para rellenar la matriz en
http://lineadecodigo.com/java/cargar-una-matriz-por-teclado-en-java/

Espero que te sirva. 😀

Víctor Cuervo

nextor

@marco es length fue error de dedo.

Víctor Cuervo

marco

yo digo que te falta hacerla con programacion orientada a objetos porque tu mismo codigo lo utilize y me dice cannot find variable lenght eso es todo gracias

Víctor Cuervo

max

Hola me pueden ayudar como puedo hacer un “for” para llenar los datos de esa matriz ingresando por teclado? …. me explico?

Víctor Cuervo

salva

Hola tengo esta web de chat gratis http://www.chatvalencia.net y queria incorporarle un generador de webchat , alguien me puede dar una direccion de donde encontrarlo o como seria el codigo php para generar a partir de una sala que pondria el usuario crear un iframe, mi correo es este por si alguien esta interesado en ayudarme chatvalencia@hotmail.com

Víctor Cuervo

lineadecodigo

@nextor, Es verdad. Muy buena forma de crear e inicializar el array a la vez. Lo incorporo al ejemplo.

Muchas gracias por el aporte.

Víctor Cuervo

nextor

Tambiene puede declarar y llenar la matriz de un jalon
int [][] matriz = {{2,4,4},
{6,6,9},
{8,10,12}};
seria la matriz del ejemplo.

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*


*