Informatică, întrebare adresată de Aldik, 8 ani în urmă

Scopul: utilizarea diferitor tipuri de liste la scrierea programelor în
limbajul de programare Java.

Sarcina: Utilizând tema "Clase și constructori", creați cel puțin cinci obiecte
și înscrieți-le într-o listă de tip ArrayList, apoi de tip LinkedList. Prezentați diferite
exemple de utilizare a acestora, inclusiv afișarea pe ecran.

Răspunsuri la întrebare

Răspuns de Apollyon
1

Răspuns:

import java.util.ArrayList;

import java.util.List;

public class Main {

   public static void main(String[] args) {

       lucruCuArrayList();

   }

   private static void lucruCuArrayList() {

      // creăm o listă de pisici

       List<Pisica> listaPisici = new ArrayList<>(List.of(new Pisica("Peticel"),

               new Pisica("Motanel"), new Pisica("Leopold")));

       System.out.println("Lista cu pisici:");

      // putem afișa conținutul listel cu un forEach / for

       listaPisici.forEach(System.out::println);

       // putem prelua obiecte după index

       System.out.println("\nlistaPisici.get(1) = " + listaPisici.get(1));

       // creăm un nou obiect pentru a-l adăuga în listă

       Pisica pisicaMishu = new Pisica("Mishu");

       // cu .add(obiect) putem adăuga obiecte-n listă

       System.out.println("\nlistaPisici.add(pisicaMishu) = " + listaPisici.add(pisicaMishu));

       // putem verifica dacă un anumit obiect există-n listă sau nu

       System.out.println("\nlistaPisici.contains(pisicaMishu) = " + listaPisici.contains(pisicaMishu));

       System.out.println("\nLista cu pisici inainte sa-l eliminam pe \"Mishu\":");

       // afișarea listei ( echivalentul lui forEach(...) )

       for (Pisica pisicaCurenta : listaPisici)

           System.out.println(pisicaCurenta);

       // cu .removeIf ștergem un obiect dacă se îndeplinește o anumită condiție, mai avem și .remove(...) cu care putem șterge obiecte după index-ul lor sau după un alt obiect

       listaPisici.removeIf(pisicaCurenta -> pisicaCurenta._numePisica.equals("Mishu"));

       // afișăm lista pentru a vedea dacă Mishu a fost șters

       System.out.println("\nLista cu pisici dupa ce l-am eliminat pe \"Mishu\":");

       // echivalentul lui forEach / enchanced 'for'

       for (int i = 0; i < listaPisici.size(); ++i)

           System.out.println(listaPisici.get(i));

       // cum am zis și mai sus, putem șterge și după index

       System.out.println("\nlistaPisici.remove(0) = " + listaPisici.remove(0));

   }

}


Îți pun aici și clasa Pisică dacă vrei să te mai joci cu metodele Listei
public class Pisica {

   String _numePisica;

   public Pisica(String _numePisica) {

       this._numePisica = _numePisica;

   }

   @Override

   public String toString() {

       return "Sunt o pisica, numele meu este " + _numePisica + "!";

   }

}

Aceleași concepte se aplică și pentru un LinkedList, diferența majoră între cele două e implementarea lor internă + alte aspecte de exemplu ArrayList-ul este mai folositor dacă ai ff multe operații de accesare a datelor pe când LinkedList-ul este mai folositor dacă trebuie să manipulezi datele din listă (să adaugi, să ștergi, etc...)

Alte întrebări interesante