Kolekcje - różnice pomiędzy metodami add(), offer(), put() oraz remove(), poll(), take()

0

Dobry wieczór. Właśnie uczę się o kolekcjach, stąd też moje pytanie. Czym różnią się metody add(), offer(), put() oraz remove(), poll(), take()? Wiem, że offer() oraz poll(), w odróżnieniu od put() oraz take() są nieblokujące oraz że tą drugą parę mogę wyrazić poprzez pierwszą, ale nie potrafię zrozumieć, czym odróżniają się od nich add() oraz remove(). Prosiłbym o jakieś krótkie wyjaśnienie, o co tu chodzi.

0

Której konkretnie kolekcji?

0

Przede wszystkim są wykorzystywane w różnych kolekcjach, które to mają inne założenia i implementacje. Zacząłbym od przestudiowania wszystkich kolekcji w javie albo przynajmniej tych najpopularniejszych.

0

Konkretnie mowa o interfejsie BlockingQueue. Szukałem jeszcze informacji na ten temat. Dotarłem do tego, że te metody różnią się reakcją na pustą/pełną kolejkę.

0

Dla BlockingQueue add() rzuca wyjątkiem, gdy brak miejsca, a offer() w tej samej sytuacji zwraca tylko false, remove() rzuci wyjątkiem, gdy kolejka pusta i nie zwraca elementu tylko wartość logiczną.

0

Rozumiem. W przypadku poll() będzie element lub null.

Dziękuję za pomoc w zrozumieniu tematu :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1