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
| | | |-+  Duda novato LinkedList
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda novato LinkedList  (Leído 2,047 veces)
lanun

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Duda novato LinkedList
« en: 11 Julio 2014, 12:56 pm »

Hola, acabo de empezar con java y probando con las listas enlazadas me ha surgido una duda: he creado dos clases, la main y una clase Persona, en la que solo tengo un campo edad y un constructor en el que asigno un valor a la variable edad.

En el Main he creado una lista enlazada de Personas (LinkedList <Persona> lista = new LinkedList <Persona>();)
El caso es que no sé cómo acceder a la variable edad de una clase Persona que está dentro de la lista enlazada. (Supongo que será una tontería de la sintaxis, perdonad la ignorancia).

Muchas Gracias.


En línea

gordo23

Desconectado Desconectado

Mensajes: 38


Ver Perfil
Re: Duda novato LinkedList
« Respuesta #1 en: 11 Julio 2014, 13:49 pm »

En la clase persona tendrías que crear getters y setters, estos son métodos para acceder y modificar campos de la clase, en este caso, en la clase persona crea estos dos métodos:

Código
  1. public void setEdad(int e) {
  2.    edad = e;
  3. }
  4.  
  5. public int getEdad() {
  6.    return edad;
  7. }

Ahora puede acceder y/o modificar la variable edad desde otras clases con:

Código
  1. Persona p = new Persona(10); //segun tu post este constructor inicializa la variable edad, en este caso con el valor 10
  2. int edad = p.getEdad();
  3. System.out.println(edad); //imprime 10
  4. p.setEdad(11);
  5. System.out.println(edad); //imprime 11

Como ves, no es muy dificil. Por último desde la lista se accede así:

Código
  1. LinkedList <Persona> lista = new LinkedList<Persona>();
  2. lista.add(new Persona(10)); //agrega una nueva persona al final de la lista
  3. System.out.println(lista.getLast().getEdad()) //imprime la edad del ultimo elemento de la lista, en este caso 10

Bueno, espero que lo hayas entendido, suerte y saludos.-


En línea

lanun

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Duda novato LinkedList
« Respuesta #2 en: 11 Julio 2014, 16:15 pm »

Ok, entendido, muchas gracias por la respuesta, me estaba liando con una tontería, gracias de nuevo.
En línea

Nasty35

Desconectado Desconectado

Mensajes: 77


Ver Perfil
Re: Duda novato LinkedList
« Respuesta #3 en: 11 Julio 2014, 16:35 pm »

Si solo tienes un objeto introducido sería:
http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html#get(int)
Persona persona = lista.get(0);
Con el get obtienes la persona, y el argumento lo que indica en qué posición de la lista está.
(En programación se empieza a contar desde 0).
En línea

lanun

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Duda novato LinkedList
« Respuesta #4 en: 11 Julio 2014, 17:04 pm »

¿Pero puedo hacer esa asignación entre elementos de la lista directamente y no genero errores?

Hasta donde yo sé (en C++), tenía que crear métodos de copia en las clases.
En línea

Chuidiang

Desconectado Desconectado

Mensajes: 161



Ver Perfil WWW
Re: Duda novato LinkedList
« Respuesta #5 en: 13 Julio 2014, 16:56 pm »

Hola:

Aunque dicen que en java no hay punteros, realmente si vienes de C/C++ se entiende mejor si piensas que todo son punteros.

Persona persona

realemente es un puntero a Persona, lo que en C++ sería Persona *persona. Por eso se hacen cosas como

Persona persona = new Persona(22);

Si haces esta asiginación  Persona persona = lista.get(0); , tienes el mismo objeto Persona dentro de la lista y en la variable persona, es como si en C++ tuvieras un puntero apuntando al elemento de la lista (persona realmente "apunta" al elemento Persona de la posición 0 de la lista. Si modificas la edad de persona, también estás modificando la de dentro del elemento de la lista.

Se bueno.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Añadir LinkedList a session
Java
athlit 0 2,409 Último mensaje 1 Septiembre 2010, 10:45 am
por athlit
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines