Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Dudas con ArrayList y enum entre clases.

Estas en el tema de Dudas con ArrayList y enum entre clases. en el foro de Java en Foros del Web. Buenos días, estoy aprendiendo por mi cuenta un poco de java y aun estoy en los primeros pasos (lo digo porque mis dudas seguramente sean ...
  #1 (permalink)  
Antiguo 19/11/2014, 06:36
 
Fecha de Ingreso: octubre-2014
Mensajes: 16
Antigüedad: 9 años, 5 meses
Puntos: 0
Dudas con ArrayList y enum entre clases.

Buenos días,

estoy aprendiendo por mi cuenta un poco de java y aun estoy en los primeros pasos (lo digo porque mis dudas seguramente sean tonterías xD)

El caso es que tengo una duda de como rellenar un ArrayList con objetos de una clase. Me explico mejor un ejemplo:

Supongamos que tenemos un edificio de 4 plantas y 4 puertas en cada planta.
Creariamos una clase "casa" que estara compuesta por los valores de planta y de puerta, el codigo mas o menos seria así:

Código:
public class Casa {

    public enum puerta {

        A, B, C, D
    }

    private final String[] planta ={"primero", "segundo", "tercero", "cuarto"};
    
    private final puerta letraPuerta;

    public Casa(puerta letraPuerta) {
        this.letraPuerta = letraPuerta;
    }

    public String[] getPlanta() {
        return planta;
    }

    public puerta getLetraPuerta() {
        return letraPuerta;
    }

    @Override
    public String toString() {
        return "Casa{" + "planta=" + planta + ", letraPuerta=" + letraPuerta + '}';
    }
}
Creo que hasta ahí esa clase estaría bien (que posiblemente no xD), ahora supongamos que tenemos otra clase que va a reutilizar esta anterior, que se llamara edificio.

En ella usando un ArrayList quiero rellenar un listado de todas las casas del edificio, para que quedase algo del estilo "primero A" (la sintaxis me da igual, me refiero a que ha de guardar los valores de planta y puerta)

Hasta el momento tengo escrito lo siguiente:

Código:
import java.util.ArrayList;

public class Edificio{

    ArrayList <Casa> edificio= new ArrayList<>();

    private void listaViviendas() {

        }
    }
en ese metodo es donde deberia de rellenar el arraylist "edificio" con objetos de la clase "casa" (para que quedasen por ejemplo algo del tipo {"primero A, primero B, primero C, primero D, segundo A....}

Pero esta parte se me escapa ya que no se como obtener el objeto "primero A" para introducirlo en la posicion del ArrayList que yo quiera.

No se si me he explicado muy bien xDD
  #2 (permalink)  
Antiguo 19/11/2014, 08:08
Avatar de pablor21  
Fecha de Ingreso: noviembre-2008
Ubicación: Montevideo - Uruguay
Mensajes: 197
Antigüedad: 15 años, 4 meses
Puntos: 13
Respuesta: Dudas con ArrayList y enum entre clases.

Hola, si lo que quieres es enviar a la salida estándar los valores entonces deberías hacer:

Código Java:
Ver original
  1. import java.util.ArrayList;
  2.  
  3. public class Edificio{
  4.  
  5.     ArrayList <Casa> edificio= new ArrayList<>();
  6.  
  7.     private void listaViviendas() {
  8.                
  9.               for(Casa c:edificio){
  10.                     System.out(c.toString());
  11.               }
  12.  
  13.      }
  14. }

Ojo que antes deberás agregar elementos a edificio, porque no has agregado nada...

Saludos,
__________________
Desarrolloador Freelance - http://www.mvdit.com.uy
  #3 (permalink)  
Antiguo 19/11/2014, 09:01
 
Fecha de Ingreso: octubre-2014
Mensajes: 16
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Dudas con ArrayList y enum entre clases.

Cita:
Iniciado por pablor21 Ver Mensaje
Hola, si lo que quieres es enviar a la salida estándar los valores entonces deberías hacer:

Código Java:
Ver original
  1. import java.util.ArrayList;
  2.  
  3. public class Edificio{
  4.  
  5.     ArrayList <Casa> edificio= new ArrayList<>();
  6.  
  7.     private void listaViviendas() {
  8.                
  9.               for(Casa c:edificio){
  10.                     System.out(c.toString());
  11.               }
  12.  
  13.      }
  14. }

Ojo que antes deberás agregar elementos a edificio, porque no has agregado nada...

Saludos,
Eso precisamente es lo que necesito, saber como agregar elementos a edificio para que despues la salida sea del tipo que habia puesto de ejemplo :)

Se que podria hacerlo a mano, algo en plan

Código Java:
Ver original
  1. baraja.add("primero A");

Pero no creo que sea eficiente para crear las 16 casas del edificio (ya ni comento si la combinacion es aún mas elevada)

Entiendo que será a traves de un bucle for y pasandole los valores recogidos desde la clase "Casa" pero es la parte donde me pierdo, si fuese pasarle solamente un valor (o bien la planta o bien la puerta) no tendria problemas, pero no se como pasarle el valor para que guarde una combinacion de ambos y quedase algo del tipo "primero A".
  #4 (permalink)  
Antiguo 20/11/2014, 02:07
 
Fecha de Ingreso: octubre-2014
Mensajes: 16
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Dudas con ArrayList y enum entre clases.

A tenor de las respuestas creo que no se ha entendido mucho lo que quería decir xDD

Lo que necesito es saber como rellenar el ArrayList "edificio" de forma automatica tomado como valores objetos de la clase "Casa" (que a su vez, estarian compuestos por las propiedades "planta" y "puerta")

Vamos, que si yo hiciese el ArrayList a mano, semanticamente deberia de quedar algo similar a:

edificio = {primero A, primero B, primero C, primero D, segundo A....... cuarto D}

para que luego yo por ejemplo si quiero sacar un valor random de ese Array, me mostrase algo similar a "tercero B"


Ya se que puedo rellenarlos a mano uno a uno, pero no me parece la manera mas eficiente ya que si en vez de 16 vecinos fuese un edificio de 36 plantas y 12 puertas por planta podría morirme en el proceso xD
  #5 (permalink)  
Antiguo 20/11/2014, 03:59
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 10 meses
Puntos: 306
Respuesta: Dudas con ArrayList y enum entre clases.

Si ya los tienes en un array y lo que quieres es convertirlos a un List, Arrays.asList es la respuesta

https://docs.oracle.com/javase/7/doc...il/Arrays.html

Si lo que quieres es que se llene mágicamente con datos, no hay solución. O haces bucles o uno por uno.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #6 (permalink)  
Antiguo 20/11/2014, 09:07
 
Fecha de Ingreso: octubre-2014
Mensajes: 16
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Dudas con ArrayList y enum entre clases.

Mmm quizas no he entendido muy bien el tema y por eso se haría de una forma diferente a lo que tengo en la cabeza no se xDD

Lo voy a intentar con otro ejemplo, ya que lo que quiero es entender el funcionamiento, no resolver un ejercicio real xDD

Supongamos que quiero crear un ArrayList con las cartas de una baraja española.
Por un lado creo la clase Carta, que esta compuesta por un Array de Strings (del tipo As, dos, tres.... sota, caballo, rey) y por otro de un enum con los palos que pueden tenr (oros, copas...)

Y a su vez creo una clase llamada baraja y dentro me creo mi ArrayList para representar cada una de las cartas de la baraja.
Ese ArrayList supongo que se llena tomando los valores de la clase "carta", pero como hago para que esos valores se guarden con un formato del estilo "as de oros" o "cuatro de espadas"

Se que puedo ir metiendo a mano con un .add cada una de las cartas de la baraja, pero no creo que sea la forma mas eficiente.

Entiendo que se hace a traves de un bucle for, tomando como valor maximo el de las 40 cartas de la baraja, pero dentro de ese for, que codigo es el que me permite ir rellenando cada posicion del ArrayList con objetos de tipo carta de tal forma que quede un ArrayList del tipo {As de oros, dos de oros, tres de oros........ rey de oros....... As de bastos...... rey de bastos}
  #7 (permalink)  
Antiguo 20/11/2014, 09:54
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 10 meses
Puntos: 306
Respuesta: Dudas con ArrayList y enum entre clases.

Código Javascript:
Ver original
  1. String[] palos = {"Oros","Copas",...}
  2. String[] numeros = {"As","Dos",...."Rey"}
  3.  
  4. List<Carta> cartas = new ArrayList<Carta>();
  5.  
  6. for(int i=0;i<numeros.length ;i++){
  7.  
  8.      for(int j=0;j<palos.length;j++){
  9.  
  10.        cartas.add( new Carta(numeros[i],palos[j]);
  11.     }            
  12.  
  13. }
Bucles
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #8 (permalink)  
Antiguo 22/11/2014, 05:29
 
Fecha de Ingreso: octubre-2014
Mensajes: 16
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Dudas con ArrayList y enum entre clases.

Gracias, algo así estaba buscando :)

Etiquetas: arraylist, clase, dudas, enum, string, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:00.