Wat doet de peek() methode?
sobes.tech AI
Antwoord van AI
De peek()-methode in Java wordt gebruikt om elementen uit verschillende collecties te selecteren zonder ze te verwijderen. Het gedrag hangt af van de interface of klasse waarin het is gedefinieerd.
In de context van Java SE wordt peek() meestal toegepast:
-
In de interface
Deque(en zijn implementaties, zoalsArrayDeque,LinkedList): Geeft het bovenste (eerste) element van de deque terug, maar verwijdert het niet. Als de deque leeg is, geeft hetnullterug.// Voorbeeld van gebruik van peek() voor Deque import java.util.Deque; import java.util.ArrayDeque; public class DequePeekExample { public static void main(String[] args) { Deque<String> deque = new ArrayDeque<>(); deque.offerLast("Element 1"); deque.offerLast("Element 2"); String eersteElement = deque.peek(); // Geeft "Element 1" terug, zonder te verwijderen System.out.println("Eerste element: " + eersteElement); // Output: Eerste element: Element 1 System.out.println("Deque na peek: " + deque); // Output: Deque na peek: [Element 1, Element 2] } } -
In de interface
Queue(en zijn implementaties, zoalsLinkedList,PriorityQueue): Geeft het voorste (eerste) element van de wachtrij terug, maar verwijdert het niet. Als de wachtrij leeg is, geeft hetnullterug.// Voorbeeld van gebruik van peek() voor Queue import java.util.Queue; import java.util.LinkedList; public class QueuePeekExample { public static void main(String[] args) { Queue<Integer> queue = new LinkedList<>(); queue.offer(10); queue.offer(20); Integer kopElement = queue.peek(); // Geeft 10 terug, zonder te verwijderen System.out.println("Kop element: " + kopElement); // Output: Kop element: 10 System.out.println("Wachtrij na peek: " + queue); // Output: Wachtrij na peek: [10, 20] } } -
In streams (Streams) met de tussenoperatie
peek(): Voert een actie uit op elk element van de stroom, zonder de inhoud ervan te beïnvloeden. Wordt vooral gebruikt voor debugging of logging, waardoor je "kunt kijken" naar de elementen terwijl ze door de pijplijn gaan.// Voorbeeld van gebruik van peek() in Streams import java.util.stream.Stream; public class StreamPeekExample { public static void main(String[] args) { Stream.of("a", "b", "c") .peek(s -> System.out.println("Verwerking: " + s)) // Voert actie uit voor elk element .map(String::toUpperCase) .forEach(System.out::println); } }
Belangrijkste kenmerken van peek():
- Verandert de collectie/stroom niet: In tegenstelling tot methoden zoals
poll()ofremove(), kijktpeek()alleen. - Geeft
nullterug: Voor lege collecties geeftpeek()nullterug (in tegenstelling totelement(), dat eenNoSuchElementExceptiongooit). - Lui in Streams: In streams is de operatie
peek()intermediair en wordt alleen uitgevoerd wanneer de stroom eindigt met een terminale operatie.
Dus, peek() biedt een veilige manier om het volgende beschikbare element te controleren zonder het te extraheren.