หัวข้อ
- #Stream
- #Java
- #การเพิ่มประสิทธิภาพ
- #Lazy Evaluation
- #การตรวจสอบจำนวนเฉพาะ
สร้าง: 2024-07-23
สร้าง: 2024-07-23 19:39
โดยทั่วไปแล้ว การตรวจสอบว่า n เป็นจำนวนเฉพาะหรือไม่นั้น จะทำการหาร n ด้วยจำนวนเต็มตั้งแต่ 2 ไปจนถึง n - 1 และตรวจสอบว่ามีจำนวนใดหาร n ลงตัวหรือไม่
ลองมาปรับปรุงวิธีการนี้ให้มีประสิทธิภาพมากขึ้นโดยการเพิ่มขั้นตอนการปรับแต่งบางอย่าง และลองใช้ Stream เพื่อใช้ประโยชน์จากการประเมินแบบล่าช้า (lazy evaluation)
ต่อไปนี้เป็นวิธีการแบบพื้นฐานในการตรวจสอบว่า n เป็นจำนวนเฉพาะหรือไม่
Stream ใน Java นั้นแตกต่างจาก List ตรงที่การดำเนินการจะไม่ถูกดำเนินการทันทีที่นิยาม
Stream จะรอจนกว่าจะมีการร้องขอองค์ประกอบใดองค์ประกอบหนึ่ง แล้วจึงดำเนินการเฉพาะการคำนวณที่จำเป็นสำหรับองค์ประกอบนั้นเท่านั้น
เราสามารถใช้ประโยชน์จากคุณสมบัตินี้ในการสร้าง Stream ที่หาจำนวนเฉพาะได้ดังนี้
โค้ดทั้งหมด
ผลลัพธ์การทำงาน
ความคิดเห็น0