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:
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...)