Tässä opetusohjelmassa opitaan Java Queue -rajapinnasta ja sen menetelmistä.
Queue
Rajapinta Java kokoelmien puitteet tarjoaa toiminnot jonon tietorakenne. Se laajentaa Collection
käyttöliittymää.
Luokat, jotka toteuttavat jonon
Koska tämä Queue
on käyttöliittymä, emme voi tarjota sen suoraa toteutusta.
Tämän toiminnon käyttämiseksi Queue
meidän on käytettävä luokkia, jotka toteuttavat sen:
- ArrayDeque
- LinkedList
- PriorityQueue
Liitännät, jotka pidentävät jonoa
Queue
Rajapinta on myös laajennettu eri subinterfaces:
Deque
BlockingQueue
BlockingDeque
Jonotietorakenteen toiminta
Jonoissa elementit tallennetaan ja niihin pääsee First In, First Out -menetelmällä. Eli elementit lisätään takaa ja poistetaan edestä .
Kuinka käyttää jonoa?
Java-käyttöjärjestelmässä meidän on tuotava java.util.Queue
paketti, jotta voimme käyttää sitä Queue
.
// LinkedList implementation of Queue Queue animal1 = new LinkedList(); // Array implementation of Queue Queue animal2 = new ArrayDeque(); // Priority Queue implementation of Queue Queue animal 3 = new PriorityQueue();
Täällä olemme luoneet esineitä animal1, animal2 ja animal3 luokkia LinkedList
, ArrayDeque
ja PriorityQueue
vastaavasti. Nämä objektit voivat käyttää Queue
käyttöliittymän toimintoja .
Jonon menetelmät
Queue
Käyttöliittymä sisältää kaikki menetelmiä Collection
liitäntä. Se johtuu siitä, että se Collection
on super-käyttöliittymä Queue
.
Jotkut yleisesti käytetyistä Queue
käyttöliittymän menetelmistä ovat:
- add () - Lisää määritetyn elementin jonoon. Jos tehtävä onnistuu,
add()
palaatrue
, jos ei, se aiheuttaa poikkeuksen. - tarjous () - Lisää määritetyn elementin jonoon. Jos tehtävä onnistuu,
offer()
palaatrue
, jos ei, se palaafalse
. - element () - Palauttaa jonon pään. Heittää poikkeuksen, jos jono on tyhjä.
- peek () - Palauttaa jonon pään. Palauttaa,
null
jos jono on tyhjä. - poista () - Palauttaa ja poistaa jonon pään. Heittää poikkeuksen, jos jono on tyhjä.
- poll () - Palauttaa ja poistaa jonon pään. Palauttaa,
null
jos jono on tyhjä.
Jonoyhteyden käyttöönotto
1. LinkedList-luokan toteuttaminen
import java.util.Queue; import java.util.LinkedList; class Main ( public static void main(String() args) ( // Creating Queue using the LinkedList class Queue numbers = new LinkedList(); // offer elements to the Queue numbers.offer(1); numbers.offer(2); numbers.offer(3); System.out.println("Queue: " + numbers); // Access elements of the Queue int accessedNumber = numbers.peek(); System.out.println("Accessed Element: " + accessedNumber); // Remove elements from the Queue int removedNumber = numbers.poll(); System.out.println("Removed Element: " + removedNumber); System.out.println("Updated Queue: " + numbers); ) )
Tuotos
Jono: (1, 2, 3) Käytetty elementti: 1 Poistettu elementti: 1 Päivitetty jono: (2, 3)
Lisätietoja on Java LinkedList -sivulla.
2. PriorityQueue-luokan toteuttaminen
import java.util.Queue; import java.util.PriorityQueue; class Main ( public static void main(String() args) ( // Creating Queue using the PriorityQueue class Queue numbers = new PriorityQueue(); // offer elements to the Queue numbers.offer(5); numbers.offer(1); numbers.offer(2); System.out.println("Queue: " + numbers); // Access elements of the Queue int accessedNumber = numbers.peek(); System.out.println("Accessed Element: " + accessedNumber); // Remove elements from the Queue int removedNumber = numbers.poll(); System.out.println("Removed Element: " + removedNumber); System.out.println("Updated Queue: " + numbers); ) )
Tuotos
Jono: (1, 5, 2) Käytetty elementti: 1 Poistettu elementti: 1 Päivitetty jono: (2, 5)
Lisätietoja on Java PriorityQueue -sivulla.
Seuraavissa opetusohjelmissa opitaan Queue
yksityiskohtaisesti käyttöliittymän eri aliliittymistä ja niiden toteuttamisesta.