เป็นภาษาการเขียนโปรแกรมที่มีประสิทธิภาพและรองรับโครงสร้างข้อมูลต่างๆเพื่อให้ชีวิตของโปรแกรมเมอร์ง่ายขึ้น ในบทความนี้เราจะมาดูโครงสร้างข้อมูลดังกล่าวนั่นคือ Java Queue นี่คือคำแนะนำที่บทความนี้มุ่งเน้น
ให้เราเริ่มต้นจากนั้น
คิวใน Java
คิวคือโครงสร้างข้อมูลที่เป็นไปตามหลักการของ FIFO (เข้าก่อน - ออกก่อน) นั่นคือองค์ประกอบจะถูกแทรกที่ส่วนท้ายของรายการและจะถูกลบออกจากจุดเริ่มต้นของรายการ อินเทอร์เฟซนี้มีอยู่ใน java.util.package และขยาย Collection Interface
คิวรองรับหลายวิธีรวมถึงการแทรกและการลบ คิวที่มีอยู่ใน java.util.package เรียกว่า คิวที่ไม่ถูกผูกมัด ในขณะที่คิวที่มีอยู่ในแพ็คเกจ java.util.concurrent เป็นที่รู้จัก คิวที่ถูกผูกไว้
คิวทั้งหมดยกเว้น Deques รองรับการแทรกในตอนท้ายและการลบจากด้านหน้า Deques รองรับการแทรกและการลบองค์ประกอบที่ปลายทั้งสองด้าน
ให้เราไปที่หัวข้อถัดไปของบทความนี้ใน Java Queue
การใช้งาน Java Queue
ในการใช้อินเทอร์เฟซคิวเราจำเป็นต้องสร้างอินสแตนซ์คลาสที่เป็นรูปธรรม ต่อไปนี้เป็นการนำไปใช้งานบางส่วนที่สามารถใช้ได้:
- util.LinkedList
- util.PriorityQueue
เนื่องจากการใช้งานเหล่านี้ไม่ปลอดภัยต่อเธรด PriorityBlockingQueue จึงทำหน้าที่เป็นทางเลือกสำหรับการใช้งานเธรดที่ปลอดภัย
ตัวอย่าง:
คิว q1 = LinkedList ใหม่ ()
คิว q2 = PriorityQueue ใหม่ ()
ให้เราลองใช้วิธีการคิว Java ที่สำคัญบางอย่าง
วิธีการในคิว Java
- เพิ่ม(): วิธีการเพิ่ม () ใช้เพื่อแทรกองค์ประกอบที่ส่วนท้ายหรือที่ส่วนท้ายของคิว วิธีนี้สืบทอดมาจากอินเทอร์เฟซการรวบรวม
- เสนอ(): วิธีการ offer () เป็นวิธีที่ดีกว่าสำหรับวิธีการ add () เนื่องจากจะแทรกองค์ประกอบที่ระบุลงในคิวโดยไม่ละเมิดข้อ จำกัด ด้านความจุใด ๆ
- แอบมอง (): peek () ใช้เพื่อดูด้านหน้าของคิวโดยไม่ต้องลบออก ถ้าคิวว่างจะส่งคืนค่าว่าง
- ธาตุ(): ถ้าคิวว่างเมธอดจะพ่น NoSuchElementException
- ลบ (): เมธอด remove () จะลบด้านหน้าของคิวและส่งกลับ พ่น NoSuchElementException ถ้าคิวว่าง
- แบบสำรวจ (): วิธีการแบบสำรวจ () จะลบจุดเริ่มต้นของคิวและส่งกลับ ถ้าคิวว่างจะส่งคืนค่าว่าง
ภาพรวมของวิธีการต่อไปนี้มีดังต่อไปนี้:
การดำเนินการ | โยนข้อยกเว้น | ส่งคืนค่า |
แทรก | เพิ่ม (องค์ประกอบ) | ข้อเสนอ (องค์ประกอบ) |
ลบ | ลบ () | แบบสำรวจ () |
ตรวจสอบ | ธาตุ() | แอบมอง () |
ให้เราดูการสาธิตตอนนี้
โปรแกรมเพื่อสาธิตวิธีการจัดคิว
import java.util. * public class Main {public static void main (String [] args) {// เราไม่สามารถสร้างอินสแตนซ์ของ Queue ได้เนื่องจากเป็นอินเทอร์เฟซดังนั้นเราจึง Queue q1 = new LinkedList () // การเพิ่มองค์ประกอบให้ คิว q1.add ('I') q1.add ('Love') q1.add ('Rock') q1.add ('And') q1.add ('Roll') System.out.println ('Elements ในคิว: '+ q1) / * * เราสามารถลบองค์ประกอบออกจากคิวโดยใช้วิธีการลบ (), * สิ่งนี้จะลบองค์ประกอบแรกออกจากคิว * / System.out.println (' ลบองค์ประกอบ: '+ q1.remove ( )) / * * element () วิธีนี้จะคืนค่าส่วนหัวของ * Queue * / System.out.println ('Head:' + q1.element ()) / * * โพลล์ () วิธีการ - สิ่งนี้จะลบและส่งคืน * head ของ Queue ส่งคืนค่า null หาก Queue ว่างเปล่า * / System.out.println ('โพล ():' + q1.poll ()) / * * peek () วิธีการ - ทำงานเหมือนกับวิธี element () แต่ * จะส่งกลับ null ถ้าคิวว่างเปล่า * / System.out.println ('peek ():' + q1.peek ()) // การแสดงองค์ประกอบของ Queue System.out.println ('Elements in Queue:' + q1)} }
เอาท์พุต:
องค์ประกอบในคิว: [I, Love, Rock, And, Roll]
องค์ประกอบที่ถูกลบ: I
หัวหน้า: ความรัก
โพล (): ความรัก
แอบมอง (): ร็อค
องค์ประกอบในคิว: [Rock, And, Roll] ในตัวอย่างข้างต้นมีการใช้ Generic Queue
ในคิวประเภทนี้เราสามารถ จำกัด ประเภทของวัตถุที่แทรกลงในคิวได้ ในตัวอย่างของเราเราสามารถแทรกอินสแตนซ์สตริงลงในคิวได้เท่านั้น
วนซ้ำผ่านคิว Java
องค์ประกอบในคิวจาวาสามารถทำซ้ำได้โดยใช้รหัสต่อไปนี้:
คิว q1 = LinkedList ใหม่ ()
q1.add (“ ร็อค”)
q1.add (“ และ”)
q1.add (“ ม้วน”)
// เข้าถึงผ่าน Iterator
Iterator ตัววนซ้ำ = q1.iterator ()
ในขณะที่ (iterator.hasNext () {
องค์ประกอบสตริง = (สตริง) iterator.next ()
}
ค้นหาจำนวนที่มากที่สุดใน array java
// เข้าถึงผ่าน for-loop ใหม่
สำหรับ (Object object: q1) {
องค์ประกอบสตริง = (สตริง) วัตถุ
}
ลำดับที่องค์ประกอบจะวนซ้ำขึ้นอยู่กับการนำคิวไปใช้
แม้ว่าจะมีหลายวิธีที่ Java Queue สามารถนำไปใช้ได้ แต่วิธีการที่สำคัญที่สุดได้รับการกล่าวถึงที่นี่
ดังนั้นเราจึงมาถึงตอนท้ายของบทความนี้ใน 'Java Queue' หากคุณต้องการเรียนรู้เพิ่มเติมตรวจสอบไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ หลักสูตรการฝึกอบรมและการรับรอง Java J2EE และ SOA ของ Edureka ได้รับการออกแบบมาเพื่อฝึกอบรมคุณสำหรับแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับกรอบงาน Java ต่างๆเช่น Hibernate & Spring
มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อกนี้และเราจะติดต่อกลับโดยเร็วที่สุด