Sobes.tech
Junior

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:

  1. In de interface Deque (en zijn implementaties, zoals ArrayDeque, LinkedList): Geeft het bovenste (eerste) element van de deque terug, maar verwijdert het niet. Als de deque leeg is, geeft het null terug.

    // 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]
        }
    }
    
  2. In de interface Queue (en zijn implementaties, zoals LinkedList, PriorityQueue): Geeft het voorste (eerste) element van de wachtrij terug, maar verwijdert het niet. Als de wachtrij leeg is, geeft het null terug.

    // 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]
        }
    }
    
  3. 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() of remove(), kijkt peek() alleen.
  • Geeft null terug: Voor lege collecties geeft peek() null terug (in tegenstelling tot element(), dat een NoSuchElementException gooit).
  • 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.

Wat doet de peek() methode? — Java - sobes.tech