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

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Clase Lista
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Clase Lista  (Leído 2,901 veces)
Beginner Web


Desconectado Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
Clase Lista
« en: 28 Marzo 2019, 02:51 am »

Hola tengo una duda como hago para crear una LinkedList(); de objetos?


« Última modificación: 28 Marzo 2019, 04:53 am por Beginner Web » En línea

7w7
rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: Clase Lista
« Respuesta #1 en: 28 Marzo 2019, 07:07 am »

Hola tengo una duda como hago para crear una LinkedList(); de objetos?

Crea tu javabean primero , la típica clase con setters y getters, y luego usas el método add() de la list  :D

Código
  1. final LinkedList<Persona> list = new LinkedList<>();
  2. list.add(new Persona("Beginner","web",14));
  3.  

El Bean persona con 3 atributos, 2 String , y un int o Integer, faltarían los setters y getters para acceder a dichos atributos, ojo los setters quitan inmutabilidad a un objeto haciendo que no sean aptos para un ambiente de concurrencia, si es inmutable tu bean, o sea:

  * Clase con final (public final class Persona) para que no se pueda heredar.
  * Sin setters
  * Variables de instancia con final
   - y puedes añadir por comodidad una clase estática dentro Aka Builder/AbstractoGenerico para inicializar sus variables de instancia pues mucho mejor, ya que este te creará una copia mutable de Persona con la que puedes trabajar.


« Última modificación: 28 Marzo 2019, 13:51 pm por rub'n » En línea



rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen ki
Beginner Web


Desconectado Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
Re: Clase Lista
« Respuesta #2 en: 28 Marzo 2019, 16:41 pm »

Seguro? no te faltó algo a la hora de declarar la lista de Persona?  :huh:
« Última modificación: 28 Marzo 2019, 17:07 pm por Beginner Web » En línea

7w7
rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: Clase Lista
« Respuesta #3 en: 28 Marzo 2019, 17:37 pm »

Seguro? no te faltó algo a la hora de declarar la lista de Persona?  :huh:

:-\ estoy 90% seguro que no probaste el ejemplo, o no hiciste el import bien, que este último no lo creo.

Y eso que lo escribo desde mi Android .

 El operador diamante puede ir vacío también, como con el objeto en el, pero siendo redundante, o sea,


 
Código
  1. final LinkedList<Persona> lista = new LinkedList<Persona>(); // redundante
« Última modificación: 30 Marzo 2019, 19:16 pm por rub'n » En línea



rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen ki
Beginner Web


Desconectado Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
Re: Clase Lista
« Respuesta #4 en: 4 Abril 2019, 10:58 am »

Que bueno, estoy usando estos metodos para hacer pruebas pero me gustaria sacar la informacion de la lista dato por dato como hacia en mi querido C++  :laugh:

Código
  1. final LinkedList<Alumno> list = new LinkedList<>();
  2.        list.add(new Alumno("Ana", "Keldysh", (short) 14));
  3.  
  4.        Principal.mostrarMiLista(list);

Código
  1.    public static void mostrarMiLista(LinkedList list) {
  2.  
  3.        if (list.isEmpty()) {
  4.            System.out.println("Lista vacia");
  5.            return;
  6.        }
  7.  
  8.        Iterator it = list.iterator();
  9.  
  10.        System.out.println("Elementos de la lista:");
  11.        while (it.hasNext()) {
  12.            System.out.println(it.next().toString());
  13.        }
  14.  
  15.    }

Quiero hacer esto

Código
  1. void mostrar_lista(nodo lista)
  2. {
  3. nodo i;
  4. if(lista!=NULL){
  5. for(i=lista;i!=NULL;i=i->sig){
  6. cout<<"Legajo: "<<i->dato.legajo<<endl;
  7. cout<<"Apellido: "<<i->dato.apellido<<endl;
  8. cout<<"Nombre: "<<i->dato.nombre<<endl<<endl;
  9. }
  10. }
  11. else
  12. cout<<"LISTA VACIA"<<endl;
  13. }

 :huh:
En línea

7w7
rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: Clase Lista
« Respuesta #5 en: 5 Abril 2019, 00:50 am »

Código
  1. private void mostrarMiLista(final LinkedList<Alumno> list) {
  2.  
  3.        // si la lista no esta vacia o tambien if(!(list.size() == 0)) aunque el Sonar(Analizador de codigo estatico) se queja
  4.        if(!list.isEmpty()) {
  5.            //old way
  6.            for(int f=0; f<list.size(); f++) {
  7.                System.out.println(list.get(f).getNombre());
  8.                System.out.println(list.get(f).getApellido());
  9.                System.out.println(list.get(f).getLegajo());
  10.            }
  11.  
  12.            //old way 2
  13.            for(Alumno tmp : list) {
  14.                System.out.println(tmp.getNombre());
  15.                System.out.println(tmp.getApellido());
  16.                System.out.println(tmp.getLegajo());
  17.            }
  18.  
  19.            //new way with java-8 foreach mucho más eficiente
  20.            //Que Iterator, una de ellas es menos sobrecarga en la heap
  21.            list.forEach(e -> {
  22.                System.out.println(e.getNombre());
  23.                System.out.println(e.getApellido());
  24.                System.out.println(e.getLegajo());
  25.            });
  26.  
  27.            //Con metodo por referencia
  28.            list.forEach(System.out::println); // invoca a toString() internamente
  29.  
  30.             //con IntStream donde e, el parametro del foreach equivale al index, por eso al hacer get(e) funciona
  31.             IntStream.range(0,list.size())
  32.                    .forEach(e -> {
  33.                        System.out.println(list.get(e).getNombre());
  34.                        System.out.println(list.get(e).getApellido());
  35.                        System.out.println(list.get(e).getLegajo());
  36.                    });
  37.  
  38.        } else {
  39.            System.out.println("Lista Vacia");
  40.            JOptionPane.showMessageDialog(null,"Lista vacia.");
  41.        }
  42. }

Potencial toString()

Código
  1. @Override
  2.    public String toString() {
  3.        final StringBuilder sb = new StringBuilder("\nAlumno");
  4.        sb.append("\nnombre='").append(nombre).append("\n");
  5.        sb.append(", apellido='").append(apellido).append("\n");
  6.        sb.append(", legajo='").append(legajo).append("\n");
  7.        sb.append("]");
  8.        return sb.toString();
  9.    }
« Última modificación: 5 Abril 2019, 15:13 pm por rub'n » En línea



rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen ki
Beginner Web


Desconectado Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
Re: Clase Lista
« Respuesta #6 en: 6 Abril 2019, 04:22 am »

Me gusto el de Potencial toString() porque honestamente no pude hacer andar los metodos anteriores, hay alguna forma de crearlo automaticamente o si o si es manual?  ;-)
En línea

7w7
rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: Clase Lista
« Respuesta #7 en: 6 Abril 2019, 10:15 am »

Me gusto el de Potencial toString() porque honestamente no pude hacer andar los metodos anteriores, hay alguna forma de crearlo automaticamente o si o si es manual?  ;-)

Que tal chavalina? Cuales métodos anteriores no pudiste hacer andar?

Si puedes generarlos manual, con tu IDE, usas NetBeans? Te puse un ejemplo con imagen en una de tus preguntas
anteriores https://foro.elhacker.net/java/metodo_mostrar_todos_los_atributos_de_un_objeto_por_pantallaresuelto-t494141.0.html donde, oprimes la combinación de teclas ALT+ Insertar, y de ahí, puedes generar el toString()
« Última modificación: 6 Abril 2019, 10:25 am por rub'n » En línea



rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen ki
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines