style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Eliminar cualquier fila de una matriz (Array bidimensional)

Saludos Java Mexico:

Les escribo por que tengo un problema, no se como puedo eliminar una fila a una matriz:

Ejemplo:

int [][]h={{1,2,3},{4,5,6,7},{8,9,10,11,12}};

y lo que representa es:

"FILA 0": 1 2 3
"FILA 1": 4 5 6 7
"FILA 2": 8 9 10 11 12

y ahora quiero AHORA ES ELIMINAR LA "FILA 1"

"FILA 0": 1 2 3
"FILA 1": 8 9 10 11 12

Les agradeceria por favor me puedan orientar o ayudar con este problema. Gracias.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Lo que tienes que hacer es

Lo que tienes que hacer es copiar los elementos ( las filas ) a una nueva y omitir la que no quieres:

int [][] destino = new int[origen.length-1][];
System.arrayCopy( origen, 0, destino, 0, 1 ); // copia la primera a la primera
System.arrayCopy( origen, 2, destino, 1, 1 ); // copia la tercera y la en la segunda

Esa es la idea, no sé exactamente como funcionará

Imagen de ezamudio

Maneja listas

En vez de arreglos, que son inmutables en cuanto a tamaño, puedes manejar listas. Ya sea LinkedList o ArrayList (una lista de listas para tu matriz).

Resultado de la Prueba del uso de "System.arrayCopy"

Gracias OscarRyz, te cuento que hice la prueba y funciona muy bien, pero ahora como puedo hacer que en origen[][] solo tenga las filas de destino [][] (es decir: solo todas las filas excepto la que queria). Bueno yo intente hacer lo mismo que tu hiciste pero no funciona, me muestra todas las filas.

public class Principal
{
        public static void mostrarArrayBidimensionalInt(int[][] a)
        {
                System.out.println("** Vector Bidimensional [" + a.length + " Filas ]**");
                for (int i = 0; i < a.length; i++)
                {
                        for (int j = 0; j < a[i].length; j++)
                        {
                                System.out.print(a[i][j] + " ");
                        }
                        System.out.println();
                }
                System.out.println("****************************");
        }

        public static void main(String[] args)
        {
                int[][] origen = { { 1, 2, 3 }, { 4, 5, 6, 7 }, { 8, 9, 10, 11, 12 } };
                int[][] destino = new int[origen.length - 1][];

                System.out.println("Origen [Original]: ");
                mostrarArrayBidimensionalInt(origen);

                System.arraycopy(origen, 0, destino, 0, 1); // copia la primera a la
                                                                                                        // primera
                System.arraycopy(origen, 2, destino, 1, 1); // copia la tercera y la en
                                                                                                        // la segunda
                System.out.println("Destino: ");
                mostrarArrayBidimensionalInt(destino);

                System.arraycopy(destino, 0, origen, 0, destino.length);
                System.out.println("Origen: ");
                mostrarArrayBidimensionalInt(origen);
        }
}

Les agradeceria me puedan ayudar.

Gracias...

Hola ezamudio, mil disculpas, te cuento que no habia escuchado antes de LinkedList o ArrayList, no se si me puedas guiar con el uso de ambos tipos de listas, por que no los conozco, no se como utilizarlos. De todos modos, gracias por la ayuda brindada. Hasta otra oportunidad.

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">