Przejdź do głównej zawartości

Java Collection - Kolekcje w Java

Podział kolekcji w Java-ie:

Implementowane są interfejsy kolor zielony w klasach kolor fiolet




Kolekcje mogą być generyczne i niegeneryczne
  • generyczne - zdefiniowany typ jaki będą przechowywać
  • niegeneryczne - przechowują wszystko co do nich wpadnie co w nich umieścimy
ArrayList:
  • wolniejsze w manipulacji
  • elementy sa obok siebie
  • wolne dodawanie elementów
LinkedList:
  • szybkie umieszczanie obiektów
  • wolniejsze odczytywanie szukanie
Linkedlist – dodawanie elementów tam gdzie jest miejsce w pamięci i jednoczesne dodawanie referencji gdzie ten element się znajduje, to jest plus w kontekście ArrayList która musi przenieść cały ArrayList jeśli braknie miejsca. LinkedList pamięta referencje do lokowanych obiektów.

Obiekt w LinkedList jest jakby opakowywany tj zawiera informacje nie tylko o sobie ale również posiada referencje do poprzednika i następnika. 

Obiekt w LinkedList zawiera: 
  • Obiekt sam w sobie 
  • Ref do następnika 
  • Ref do poprzednika 
Wrappery - obiekt, który ma otoczyć dany obiekt i rozszerzyć jego funkcjonalność.


Dzięki temu że odwołujemy się do typu wyższego otrzymujemy elastyczność jeśli będzie trzeba zamienić ArrayList na LinkedList lub odwrotnie: 


private List<Book> bookList = new LinkedList<>();

ArrayList-y można ze sobą łączyć z wykorzystaniem metody .add


Generycznosć w ArrayLilst dotyczy typów obiektowych nie można zrobić czegoś takiego jak  

List<int> trzeba stosować List<Integer> 

int typu małe literały

Iteger – typ obiektowy

public final class Integerextends Numberimplements Comparable<Integer> 

The Integer class wraps a value of the primitive type int in an object. An object of type Integer contains a single field whose type is int. 

In addition, this class provides several methods for converting an int to a String and a String to an int, as well as other constants and methods useful when dealing with an int. 


Komentarze

Popularne posty z tego bloga

Skrócony zapis if - instrukcja warunkowa java

Instrukcja warunkowa - warunek i rezultat. if (warunek) { jesli spełniony wykonań operacje i zwróć wynik; } warunek nie spełniony Możliwości skrócenia kodu instrukcji warunkowej if (i < 0) ? i-- : i++; Jeżeli i mniejsze od zera to i-- jezeli false to i++ if (i < 0) {     i--; } else {     i++; } Skrócony zapis instrukcji warunkowej else if (i < 0) ? i--;  inna_zmienna=4; : i++; if (i < 0) {     i--; } else {     i++;     inna_zmienna = 4; } Skrócony zapis if

String-1 > withouEnd2

Given a string, return a version without both the first and last char of the string. The string may be any length, including 0. withouEnd2("Hello") → "ell" withouEnd2("abc") → "b" withouEnd2("ab") → "" public String withouEnd2 ( String str ) { if ( str . length ()== 1 ){ return str . substring ( 1 ); } else if ( str . length ()== 0 ){ return str ; } return ( str . substring ( 1 , str . length ()- 1 )); }

String-2 > xyzThere - java

Return true if the given string contains an appearance of "xyz" where the xyz is not directly preceeded by a period (.). So "xxyz" counts but "x.xyz" does not.  xyzThere("abcxyz") → true xyzThere("abc.xyz") → false xyzThere("xyz.abc") → true Definiujemy loop ktory sprawdza za kazdym podejsciem czy kolejne indexy i,i+1 oraz i+2 i zdefiniowane dla nich char.  Nalezy tu pamietac ze jesli sprawdamy po indeksach np i+2 to tzreba zostawic "miejsce" na koncu aby nie bylo outOfBoudnExeption tj przekroczenia rlugosci stringa. Jezeli pierwszy warunek jest spelniony tj mamy na kolejnych indexach interesujace nas char-y sprawdzamy czy na poprzedzajacych nasza trojkę indexach pojawia sie "." zaczynamy od indexu 0 - tzreba to uwzglednić w warunku tj albo index 0 == 0 lub i-1 == 0 public boolean xyzThere ( String str ) { int len = str . length () - 2 ; for ( int i = 0 ; i < len ; i...