elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  ArrayList Bidimencionales
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ArrayList Bidimencionales  (Leído 17,661 veces)
cyberserver

Desconectado Desconectado

Mensajes: 162


Lo que una mente crea, otra lo destruye


Ver Perfil WWW
ArrayList Bidimencionales
« en: 19 Diciembre 2010, 21:50 pm »

. Hola amigos.

Estoy haciendo pruebas utilisando ArrayList, pero caramba solo he podido hacer Arrays Unidimencionales.


Existe la forma de Realizar uno Bidimencional (Matriz).

encontre que acoplando los objetos, algo parecido a esto:

Código
  1.        ArrayList A1=new ArrayList();
  2.     ArrayList A11=new ArrayList();
  3.  
  4.       A1.add(A11);
  5.  
  6.       A1.set(0,A11.add("Hola en 1.1"));
  7.     A1.set(0,A11.add("Hola en 1.2"));
  8.     A1.set(0,A11.add("Hola en 1.3"));
  9.  
  10.  
  11.  

Pero como puedo referirme para poder ver los valores de un elemento de A1 y de A11 a la ves???

como si fuera
Código
  1. String  Valor = A1[0][3];
  2.  

Existe alguna forma de Hacerlo al mismo tiempo sin tener que hacerlo independientemente como

Código
  1. A1.get(0);
  2. A11.get(0);
  3.  


Existe una forma mas sencilla de anidarlas los ArrayList? para no tener que declarar el segundo objeto A11 primero y luego usarlo agregandolo a A1.add

Esto lo digo pues si quiero colocar A11 dentro de Cada A1(0),A1(1).....A1(n) pues tendria que Declarar muchos objetos similares a A11, haciendo un buen de objetos que consumirian memoria...  :huh: :huh: :huh:  :rolleyes: :rolleyes:
Código
  1.        ArrayList A1=new ArrayList();
  2.     ArrayList A11=new ArrayList();
  3.        ArrayList A12=new ArrayList();
  4.  
  5.       A1.add(A11);
  6.       A1.add(A12);
  7.  
  8.       A1.set(0,A11.add("Hola en 1.1"));
  9.     A1.set(0,A11.add("Hola en 1.2"));
  10.     A1.set(0,A11.add("Hola en 1.3"));
  11.  
  12.        A1.set(1,A12.add("Hola en 2.2"));
  13.     A1.set(1,A12.add("Hola en 2.1"));
  14.     A1.set(1,A12.add("Hola en 2.3"));
  15.  


« Última modificación: 19 Diciembre 2010, 21:53 pm por cyberserver » En línea






sclub


Desconectado Desconectado

Mensajes: 591


Ver Perfil
Re: ArrayList Bidimencionales
« Respuesta #1 en: 19 Diciembre 2010, 22:26 pm »

Buenas!!

Has probado así¿?
Código
  1. ArrayList[][] array = new ArrayList[5][5];
  2.  
  3. array[0][0].add("holaa");
  4. ....
  5. array[4][4].add("ultimo");

A mí me funciona sin problemas...


Saludos!

EDIT /---
Aver... nose para que querrás el codigo, pero eso lo podrias hacer así:
Código
  1. ArrayList[] array = new ArrayList[5];
  2.  
  3. array[0].get(index);
  4.  

No es necesario, por lo que deduzco aquí, utilizar 2 dimensiones, con una basta, pues el ArrayList ya te proporciona 'una dimension'... puedes meter dentro todo lo que quieras y tiene su index...


« Última modificación: 19 Diciembre 2010, 22:31 pm por sclub » En línea

... because making UNIX friendly is easier than debugging Windows.
sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: ArrayList Bidimencionales
« Respuesta #2 en: 20 Diciembre 2010, 01:36 am »

cuando algien trata de atornillar algo usa un destornillador no un martillo  >:(
primero deviste leer para que sirve el array list

estoy harto de java en . net tiene una inplementecacion de tabla muy potente pero nosotros solo tenemos un tablemodel pero en la practica usamos defaultablemodel

Código
  1. TableModel model = new DefaultTableModel(2, 2);
  2. model.setValueAt("celda 0:0", 0, 0);
  3. model.setValueAt("celda 1:1", 1, 1);
  4. model.setValueAt("celda 0:1", 0, 1);
  5. model.setValueAt("celda 1:0", 1, 0);
  6.  
  7. System.out.print(model.getValueAt(1, 1));
  8.  

ArrayList[][] array = new ArrayList[5][5];
es un arreglo bidimencional pero todos los elementos son ArrayList lo cual es una solucion muy rara por cada ArrayList puede tener varios elementos lu cual es por decirlo menos muy raro te acepta cosas como

Código
  1. array[0][0].add("holaa");
  2. array[0][0].add("ultimo");
  3.  
« Última modificación: 20 Diciembre 2010, 01:44 am por sapito169 » En línea

cyberserver

Desconectado Desconectado

Mensajes: 162


Lo que una mente crea, otra lo destruye


Ver Perfil WWW
Re: ArrayList Bidimencionales
« Respuesta #3 en: 20 Diciembre 2010, 06:00 am »

Pues muchas gracias por su informacion.

Sclub... creo que los codigos que recomiendas no funcionan o no se si los entendi mal, mira aqui los escribi de esta manera:
Código
  1. import javax.swing.*;
  2. import java.util.*;
  3.  
  4. public class Anidado {
  5.  
  6.    public static void main (String[] args) {
  7.  
  8.     ArrayList[] array = new ArrayList[5];
  9.  
  10.     array[0].add("Valor0.0");
  11.     array[0].add("Valor0.1");
  12.  
  13.     array[1].add("Valor1.0");
  14.     array[1].add("Valor1.1");
  15.  
  16.  
  17. JOptionPane.showMessageDialog(null,"Valor " + array[0].get(1));
  18.  
  19.  
  20. }
  21.  
  22. }
  23.  

y me retorna el siguente error:
Citar
--------------------Configuration: <Default>--------------------
Exception in thread "main" java.lang.NullPointerException
    at Anidado.main(Anidado.java:10)

Process completed.


El error : No esta bien la declaracion del Objeto ArrayList.... por que ?
Citar
Los constructores para poder crear un Objeto de Tipo ArrayLis son los siguientes:
Wikipedia
ArrayList tiene varios constructores, dependiendo de cómo necesitemos construir el ArrayList . Los siguientes dos constructores nos ayudarán a entenderlo:
•   ArrayList() construye un ArrayList con capacidad cero por defecto, pero crecerá según le vayamos añadiendo:
ArrayList al = new ArrayList();
•   ArrayList(int initialCapacity) construye un ArrayList vacío con una capacidad inicial especificada:
ArrayList al2 = new ArrayList(5);


Tambien en el codigo que colocaste:
Código
  1. ArrayList[][] array = new ArrayList[5][5];
  2.  
  3. array[0][0].add("holaa");
  4. ....
  5. array[4][4].add("ultimo");

Yo que sepa no existen ArrayList[][] ni la Bidimecionalidad (Matrizes), ya que unas de las Desventajas que tiene ArrayList con relacion a los Arrays normales son las siguentes :
Citar
•   Se puede establecer el límite inferior de Array, pero el límite inferior de ArrayList o List siempre es cero.
•   Array puede tener varias dimensiones, mientras que ArrayList o List siempre tienen una dimensión exactamente.
•   Un objeto Array de un tipo específico distinto de Object ofrece mejor rendimiento que ArrayList ya que los elementos de ArrayList son de tipo Object y, por lo tanto, las conversiones boxing y unboxing se producirán normalmente al almacenar o recuperar un tipo de valor. Sin embargo, List puede presentar un rendimiento similar al de una matriz del mismo tipo siempre que no se requiera ninguna reasignación, es decir, siempre que la capacidad inicial sea una aproximación acertada del tamaño máximo de la lista.


Segun entiendo la unica forma de crear una matriz o un ArrayList con mas de una dimencion es anidando ArrayList....

NOTA: Perdon se me olvido comentar que la unica razon por que pretendo utilizar ArrayList y no simplemente un Array es por la capacidad de estos objetos de crecer y remover elementos DINAMICAMENTE en tiempo de ejecucion (Utiliza Tipado Dinamico)


En cuanto a lo que dice. Sapito voy a tratar de anlizarlo... muchas Gracias :)

En línea






sclub


Desconectado Desconectado

Mensajes: 591


Ver Perfil
Re: ArrayList Bidimencionales
« Respuesta #4 en: 20 Diciembre 2010, 06:53 am »

Cierto, se me paso. Aunque crees el array igual se deberian crear los objetos.
Citar
ArrayList[] array = new ArrayList[5];

array[0] = new ArrayList();
array[1] = new ArrayList();


array[0].add("Valor0.0");
array[0].add("Valor0.1");
array[1].add("Valor1.0");
array[1].add("Valor1.1");

Nose si es la mejor manera de tratar con ArrayList, pero hace poco lo probe y si lo 'organizas' bien se puede tratar con ello.

Lo del TableModel no lo sabia, pero lo mirare aver como va. ;)
En línea

... because making UNIX friendly is easier than debugging Windows.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con arraylist « 1 2 »
Java
Toryas 10 8,513 Último mensaje 25 Octubre 2007, 23:06 pm
por Toryas
Ayuda con arraylist...Vb.net ???
.NET (C#, VB.NET, ASP)
ronald hisp 7 14,782 Último mensaje 29 Diciembre 2009, 02:54 am
por seba123neo
Ultima posicion de una arrayList
Java
Shakos 1 7,804 Último mensaje 14 Mayo 2011, 16:58 pm
por ShotgunLogic
arraylist character to arraylist String
Java
mapers 4 5,527 Último mensaje 1 Noviembre 2011, 15:24 pm
por adastra
Meter ArrayList en Otro ArrayList
Java
Tuplado 1 3,281 Último mensaje 5 Enero 2014, 22:10 pm
por ~ Yoya ~
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines