50 คำถามและคำตอบสัมภาษณ์วิศวกรรมซอฟต์แวร์
คำถามและคำตอบสัมภาษณ์นักพัฒนาซอฟต์แวร์สำหรับน้องใหม่
1) ซอฟต์แวร์ประเภทที่สำคัญมีอะไรบ้าง?
- ซอฟต์แวร์ระบบ
- โปรแกรมซอฟต์แวร์
- ซอฟต์แวร์ฝังตัว
- เว็บแอ็พพลิเคชัน
- ซอฟต์แวร์ปัญญาประดิษฐ์
- ซอฟต์แวร์ทางวิทยาศาสตร์
👉 ดาวน์โหลด PDF ฟรี: คำถามและคำตอบสัมภาษณ์วิศวกรรมซอฟต์แวร์
2) อะไรคือความแตกต่างที่สำคัญระหว่างโปรแกรมคอมพิวเตอร์และซอฟต์แวร์คอมพิวเตอร์?
โปรแกรมคอมพิวเตอร์เป็นส่วนหนึ่งของโค้ดโปรแกรม มันดำเนินงานที่กำหนดไว้อย่างดี ในทางกลับกัน ซอฟต์แวร์ประกอบด้วยโค้ดโปรแกรม เอกสารประกอบ และคู่มือผู้ใช้
3) การรีเอ็นจิเนียริ่งซอฟต์แวร์คืออะไร?
เป็นกระบวนการพัฒนาซอฟต์แวร์ที่ทำเพื่อปรับปรุงการบำรุงรักษาระบบซอฟต์แวร์
4) อธิบายกระบวนการพัฒนาซอฟต์แวร์โดยย่อ:
การพัฒนาซอฟต์แวร์เป็นวงจรชีวิตที่ประกอบด้วยขั้นตอนต่าง ๆ ดังต่อไปนี้:
- การวิเคราะห์ความต้องการ
- Specification
- สถาปัตยกรรมซอฟต์แวร์
- การดำเนินงาน
- การทดสอบ
- เอกสาร
- การฝึกอบรมและการสนับสนุน
- ซ่อมบำรุง
5) SDLC มีรุ่นอะไรบ้าง?
แบบจำลองน้ำตก, แบบจำลองเกลียว, แบบจำลองถุงใหญ่, แบบจำลองซ้ำ และแบบจำลอง V- ล้วนแล้วแต่มีชื่อเสียง รุ่น SDLC.
6) การตรวจสอบและการตรวจสอบความถูกต้องคืออะไร?
การตรวจสอบ:
การตรวจสอบเป็นคำที่อ้างถึงชุดของกิจกรรมที่ทำให้แน่ใจว่าซอฟต์แวร์ใช้ฟังก์ชันเฉพาะ
การตรวจสอบ:
หมายถึงชุดของกิจกรรมที่ทำให้แน่ใจว่าซอฟต์แวร์ที่ถูกสร้างขึ้นตามความต้องการของลูกค้า
7) ในกระบวนการพัฒนาซอฟต์แวร์ ความหมายของการดีบักคืออะไร?
การดีบักเป็นกระบวนการที่ส่งผลให้เกิดการลบข้อผิดพลาด เป็นส่วนสำคัญของการทดสอบที่ประสบความสำเร็จ
8) คุณจะแน่ใจได้อย่างไรว่าโค้ดของคุณปลอดภัยและรวดเร็ว?
ในซอฟต์แวร์ ความปลอดภัยในการพัฒนาต้องมาก่อนเสมอ ดังนั้น หากการทำงานของโปรแกรมช้า ฉันจะพยายามหาสาเหตุและวิธีแก้ไขปัญหาที่ใช้เวลานาน
9) บอกชื่อเครื่องมือสองอย่างที่ใช้ในการติดตามข้อกำหนดของซอฟต์แวร์หรือไม่
มีหลายวิธีในการติดตามข้อกำหนด
สองที่ใช้กันทั่วไปคือ:
- จัดทำเอกสารข้อกำหนดข้อกำหนดเพื่อแสดงรายการข้อกำหนดทั้งหมด
- สร้างแผ่นงาน Excel ในรายการตามข้อกำหนด ประเภท การขึ้นต่อกัน ลำดับความสำคัญ ฯลฯ
10) อะไรคือความแตกต่างที่สำคัญระหว่าง stubs และ mock?
Stub คือการใช้งานอินเทอร์เฟซขั้นต่ำซึ่งโดยทั่วไปจะส่งคืนข้อมูลที่ฮาร์ดโค้ดในขณะที่การเยาะเย้ยมักจะตรวจสอบผลลัพธ์ตามความคาดหวัง ความคาดหวังเหล่านั้นถูกกำหนดไว้ในการทดสอบ
11) คุณชอบเขียนอัลกอริทึมการเขียนโปรแกรมด้วยภาษาอะไร?
นักพัฒนาทุกคนมีความคิดเห็นของตนเองเกี่ยวกับตัวเลือกภาษาการเขียนโปรแกรม แม้ว่าเราควรจะชอบภาษาระดับสูงเพราะมันมีความไดนามิก เหมือนซีและ C++ ภาษา
12) ซอฟต์แวร์คอมพิวเตอร์คืออะไร?
ซอฟต์แวร์คอมพิวเตอร์เป็นแพ็คเกจที่ประกอบด้วยโปรแกรมซอฟต์แวร์ เอกสารประกอบ และคู่มือผู้ใช้เกี่ยวกับวิธีใช้ซอฟต์แวร์
13) ตามความเห็นของคุณ SDLC รุ่นใดดีที่สุด?
ไม่มีการจัดอันดับดังกล่าว เนื่องจากมีการนำโมเดล SDLC มาใช้ตามความต้องการของกระบวนการพัฒนา มันอาจแตกต่างกันระหว่างซอฟต์แวร์กับซอฟต์แวร์
14) ใครคือผู้จัดการโครงการซอฟต์แวร์? บทบาทของเขาคืออะไร?
ผู้จัดการโครงการซอฟต์แวร์คือบุคคลที่รับผิดชอบในการจัดการโครงการพัฒนาซอฟต์แวร์
ผู้จัดการโครงการกำลังวางแผนโครงการ ติดตามความคืบหน้า การสื่อสาร เขาหรือเธอยังจัดการความเสี่ยงและทรัพยากรเพื่อส่งมอบโครงการภายในเวลา ต้นทุน และข้อจำกัดด้านคุณภาพ
15) ขอบเขตซอฟต์แวร์หมายถึงอะไร?
ขอบเขตซอฟต์แวร์เป็นขอบเขตที่กำหนดไว้อย่างดี รวมถึงกิจกรรมทุกประเภทที่ทำเพื่อพัฒนาและส่งมอบผลิตภัณฑ์ซอฟต์แวร์
ขอบเขตซอฟต์แวร์จะกำหนดฟังก์ชันและส่วนต่างๆ ทั้งหมดที่จะจัดส่งโดยเป็นส่วนหนึ่งของซอฟต์แวร์ ขอบเขตยังระบุด้วยว่าผลิตภัณฑ์จะทำอะไร? อะไรไม่ใช่ส่วนหนึ่งของโครงการ? การประมาณโครงการคืออะไร?
กระบวนการนี้มีประโยชน์ในการประมาณแง่มุมต่างๆ ของผลิตภัณฑ์ซอฟต์แวร์ การประมาณนี้สามารถตัดสินใจได้ทั้งที่ปรึกษาผู้เชี่ยวชาญหรือโดยใช้สูตรที่กำหนดไว้ล่วงหน้า
16) จะหาขนาดของผลิตภัณฑ์ซอฟต์แวร์ได้อย่างไร?
ขนาดของผลิตภัณฑ์ซอฟต์แวร์สามารถคำนวณได้โดยใช้วิธีสองวิธีดังต่อไปนี้
- การนับบรรทัดของโค้ดที่จัดส่ง
- การนับคะแนนฟังก์ชันที่ส่งมอบ
17) จุดฟังก์ชันคืออะไร?
จุดฟังก์ชั่นคือคุณสมบัติที่ได้รับจากผลิตภัณฑ์ซอฟต์แวร์ ถือเป็นการวัดขนาดซอฟต์แวร์ที่สำคัญที่สุด
18) มีเทคนิคการประมาณค่าโครงการซอฟต์แวร์อะไรบ้าง?
เทคนิคการประมาณค่าที่ใช้กันอย่างแพร่หลาย ได้แก่
- เทคนิคการสลายตัว
- เทคนิคเชิงประจักษ์
19) การจัดการการกำหนดค่าซอฟต์แวร์คืออะไร?
การจัดการการกำหนดค่าซอฟต์แวร์เป็นกระบวนการในการติดตามและควบคุมการเปลี่ยนแปลงที่เกิดขึ้นในซอฟต์แวร์
การควบคุมการเปลี่ยนแปลงเป็นฟังก์ชันที่ทำให้แน่ใจว่าการเปลี่ยนแปลงทั้งหมดที่ทำในระบบซอฟต์แวร์มีความสอดคล้องและสร้างขึ้นโดยใช้กฎและข้อบังคับขององค์กร
20) คุณจะวัดผลการดำเนินโครงการได้อย่างไร?
เราสามารถวัดการดำเนินโครงการได้โดยใช้การตรวจสอบกิจกรรม รายงานสถานะ และรายการตรวจสอบเหตุการณ์สำคัญ
21) บอกฉันเกี่ยวกับเครื่องมือการจัดการโครงการบางอย่าง
มีเครื่องมือการจัดการหลายประเภทที่ใช้ตามความต้องการของโครงการซอฟต์แวร์ บางส่วนเป็นแผนภูมิ Pert, แผนภูมิแกนต์, ฮิสโตแกรมทรัพยากร, รายงานสถานะ ฯลฯ
22) ข้อกำหนดซอฟต์แวร์คืออะไร?
ข้อกำหนดซอฟต์แวร์เป็นคำอธิบายการทำงานของระบบซอฟต์แวร์ที่นำเสนอ โดยถือว่าเป็นคำอธิบายของระบบเป้าหมาย ฟังก์ชันการทำงาน และคุณลักษณะต่างๆ
23) การศึกษาความเป็นไปได้คืออะไร?
เป็นการวัดผลเพื่อดูว่าการพัฒนาโครงการซอฟต์แวร์จะมีประโยชน์และใช้งานได้จริงเพียงใดสำหรับองค์กร โปรแกรมวิเคราะห์ซอฟต์แวร์จะทำการศึกษาเพื่อทราบถึงความเป็นไปได้ทางเศรษฐกิจ เทคนิค และการดำเนินงานของโครงการ
- เศรษฐกิจ ซึ่งจะรวมถึงค่าใช้จ่ายในการฝึกอบรม ค่าใช้จ่ายเพิ่มเติมและเครื่องมือ และการประมาณการต้นทุนและผลประโยชน์โดยรวมของโครงการ
- วิเคราะห์ทางเทคนิค: เป็นการประเมินด้านเทคนิค เป็นไปได้ไหมที่จะพัฒนาระบบนี้? ประเมินความเหมาะสมของเครื่องและระบบปฏิบัติการที่ซอฟต์แวร์จะดำเนินการ ความรู้เกี่ยวกับการพัฒนาซอฟต์แวร์และเครื่องมือที่มีให้สำหรับโครงการนี้
- Operaเหตุผล: ในที่นี้นักวิเคราะห์จำเป็นต้องประเมินว่าองค์กรจะสามารถปรับตัวได้อย่างราบรื่นต่อการเปลี่ยนแปลงที่ทำตามความต้องการของโครงการ ปัญหาคุ้มค่าที่จะแก้ไขตามต้นทุนโดยประมาณหรือไม่?
หลังจากศึกษาทั้งหมดนี้แล้ว รายงานความเป็นไปได้ขั้นสุดท้ายจะถูกสร้างขึ้น
24) ข้อกำหนดด้านการทำงานและที่ไม่เกี่ยวกับการทำงานคืออะไร?
ข้อกำหนดด้านการทำงานคือคุณลักษณะด้านการทำงานที่ผู้ใช้คาดหวังจากผลิตภัณฑ์ซอฟต์แวร์ที่นำเสนอ
ข้อกำหนดที่ไม่เกี่ยวกับฟังก์ชันเกี่ยวข้องกับความปลอดภัย ประสิทธิภาพ รูปลักษณ์ และความรู้สึกของอินเทอร์เฟซผู้ใช้
25) ตัวชี้วัดซอฟต์แวร์คืออะไร?
Software Metrics นำเสนอมาตรการสำหรับแง่มุมต่างๆ ของกระบวนการซอฟต์แวร์ ซึ่งแบ่งออกเป็น:
- ตัวชี้วัดความต้องการ: ข้อกำหนดด้านความยาว ความสมบูรณ์
- ตัวชี้วัดผลิตภัณฑ์: จำนวนบรรทัดการเข้ารหัส, ตัวชี้วัดเชิงวัตถุ, ตัวชี้วัดการออกแบบและการทดสอบ
26) การทำให้เป็นโมดูลคืออะไร?
การทำให้เป็นโมดูลเป็นเทคนิคที่ใช้ในการแบ่งระบบซอฟต์แวร์ออกเป็นโมดูลที่รอบคอบต่างๆ ที่คาดว่าจะดำเนินงานได้อย่างอิสระ
27) การทำงานร่วมกันคืออะไร?
การทำงานร่วมกันเป็นการวัดที่กำหนดความเชื่อถือได้ภายในระหว่างองค์ประกอบของโมดูล
28) พูดถึงเครื่องมือวิเคราะห์และออกแบบซอฟต์แวร์บ้างไหม?
เครื่องมือวิเคราะห์และออกแบบซอฟต์แวร์ที่สำคัญที่สุดบางส่วน ได้แก่:
- ไดอะแกรมการไหลของข้อมูล
- แผนภูมิที่มีโครงสร้าง
- โครงสร้างภาษาอังกฤษ
- พจนานุกรมข้อมูล
- ไดอะแกรมผลลัพธ์กระบวนการอินพุตแบบลำดับชั้น
- แผนผังความสัมพันธ์เอนทิตีและตารางการตัดสินใจ
29) แผนภาพการไหลของข้อมูลระดับ 0 หมายความว่าอย่างไร
ระดับนามธรรมสูงสุดเรียกว่าระดับ 0 ของ DFD เรียกอีกอย่างว่า DFD ระดับบริบท มันแสดงให้เห็นระบบข้อมูลทั้งหมดเป็นแผนภาพเดียว
30) อะไรคือความแตกต่างที่สำคัญระหว่าง Structured English และ Pseudo Code?
โครงสร้างภาษาอังกฤษเป็นภาษาอังกฤษพื้นเมือง ใช้สำหรับเขียนโครงสร้างของโมดูลโปรแกรม มันใช้คำสำคัญภาษาการเขียนโปรแกรม ในทางกลับกัน Pseudo Code นั้นเหมือนกับภาษาการเขียนโปรแกรมมากกว่าโดยไม่มีไวยากรณ์ของภาษาใดภาษาหนึ่งโดยเฉพาะ
คำถามและคำตอบวิศวกรรมซอฟต์แวร์ viva สำหรับผู้มีประสบการณ์
31) การออกแบบโครงสร้างคืออะไร?
การออกแบบโครงสร้างเป็นแนวคิดของปัญหา นอกจากนี้ยังเรียกว่าการออกแบบโซลูชันซึ่งอิงตามกลยุทธ์ 'แบ่งแยกและพิชิต'
32) การเขียนโปรแกรมเชิงฟังก์ชันคืออะไร?
เป็นวิธีการเขียนโปรแกรมที่ใช้แนวคิดของฟังก์ชันทางคณิตศาสตร์ โดยให้วิธีการคำนวณเป็นฟังก์ชันทางคณิตศาสตร์ ซึ่งให้ผลลัพธ์โดยไม่คำนึงถึงสถานะของโปรแกรม
33) การประกันคุณภาพเทียบกับการควบคุมคุณภาพคืออะไร?
การประกันคุณภาพจะตรวจสอบว่ามีการปฏิบัติตามกระบวนการที่เหมาะสมในขณะที่พัฒนาซอฟต์แวร์ในขณะที่การควบคุมคุณภาพเกี่ยวข้องกับการรักษาคุณภาพของผลิตภัณฑ์ซอฟต์แวร์
34) เครื่องมือของ CASE คืออะไร?
CASE หมายถึง คอมพิวเตอร์ช่วย วิศวกรรมซอฟต์แวร์- เป็นชุดของโปรแกรมแอปพลิเคชันซอฟต์แวร์อัตโนมัติ ซึ่งใช้ในการสนับสนุน ปรับปรุง และเสริมสร้างกิจกรรม SDLC
35) โมเดลกระบวนการใดที่จะลบข้อบกพร่องก่อนที่ซอฟต์แวร์จะเกิดปัญหา
วิธีวิศวกรรมซอฟต์แวร์คลีนรูมช่วยขจัดข้อบกพร่องก่อนที่ซอฟต์แวร์จะเกิดปัญหา
36) แก้ไขปัญหานี้
มีถุงเท้าสองประเภทที่แตกต่างกันยี่สิบแบบในลิ้นชักในห้องมืดห้องเดียว คุณต้องสวมถุงเท้าจำนวนขั้นต่ำเท่าไรเพื่อให้แน่ใจว่าจะได้คู่ที่ตรงกัน”
หากคุณเลือกถุงเท้าสามคู่ ถุงเท้าเหล่านั้นอาจเป็นประเภทเดียวกันแม้ว่าโอกาสจะอยู่ที่ 50% ก็ตาม อัตราต่อรองไม่เคยเป็นความจริงที่เท่าเทียมกัน ดังนั้น วิธีเดียวที่จะ 'ให้แน่ใจว่าคุณมีคู่ที่ตรงกัน' คือการรับแรงกระแทกอย่างน้อย 11 ครั้ง
37) คุณจะมั่นใจได้อย่างไรว่าโค้ดที่คุณเขียนสามารถรองรับสถานการณ์ข้อผิดพลาดประเภทต่างๆ ได้?
ฉันสามารถเขียนการทดสอบที่กำหนดสถานการณ์ข้อผิดพลาดที่คาดหวังได้
38) อธิบายความแตกต่างระหว่างเธรดและกระบวนการหรือไม่
กระบวนการเป็นตัวอย่างของโปรแกรมคอมพิวเตอร์ ในโปรแกรมเดียว เป็นไปได้ที่จะมีเธรดตั้งแต่หนึ่งเธรดขึ้นไป
39) บอกความแตกต่างระหว่าง EXE และ DLL ให้ฉันฟังหน่อยสิ
exe เป็นโปรแกรมปฏิบัติการในขณะที่ DLL เป็นไฟล์ที่สามารถโหลดและรันโดยโปรแกรมแบบไดนามิก เป็นที่เก็บโค้ดภายนอกสำหรับโปรแกรม เนื่องจากทั้งสองโปรแกรมต่างกัน ให้ใช้ DLL เดียวกันซ้ำแทนที่จะมีโค้ดนั้นในไฟล์ นอกจากนี้ยังช่วยลดพื้นที่จัดเก็บที่จำเป็นอีกด้วย
40) การพิมพ์แบบเข้มงวดและแบบอ่อนแอคืออะไร? แบบไหนดีกว่ากัน? เพราะเหตุใด?
การพิมพ์ที่เข้มงวดจะตรวจสอบประเภทของตัวแปรในระหว่างการคอมไพล์ ในทางกลับกัน การพิมพ์ที่อ่อนแอจะตรวจสอบประเภทของระบบในระหว่างการรันไทม์ ในบรรดาประเภทเหล่านั้น การพิมพ์ที่เข้มงวดมักได้รับการนิยมใช้ เนื่องจากช่วยลดจุดบกพร่องให้น้อยที่สุด
41) อธิบายความแตกต่างระหว่างการเขียนโปรแกรมเชิงอินเทอร์เฟซ, เชิงวัตถุ และเชิงมุม
- การเขียนโปรแกรมอินเทอร์เฟซเป็นไปตามสัญญา
- เชิงวัตถุเป็นวิธีการเขียนวัตถุแบบละเอียดซึ่งมีจุดประสงค์เดียว
- การเขียนโปรแกรมเชิงมุมมองคือการแยกโค้ดในลักษณะที่ออบเจ็กต์ต่างๆ ทำหน้าที่หลัก และงานย่อยจะดำเนินการโดยออบเจ็กต์อิสระ
42) เหตุใดการใช้ catch (ข้อยกเว้น) จึงเป็นความคิดที่ไม่ดีเสมอไป
เป็นความคิดที่ไม่ดีเพราะว่า:
- เนื่องจากไม่มีการกำหนดตัวแปร จึงไม่สามารถอ่านข้อยกเว้นได้
- ควรใช้ข้อยกเว้นเมื่อคุณทราบประเภทข้อยกเว้นแล้ว
43) ข้อมูลประเภทใดที่ถูกส่งผ่าน HTTP Headers?
สคริปต์และข้อมูลเมตาที่ส่งผ่านส่วนหัว HTTP
44) คุณจัดลำดับความสำคัญของข้อกำหนดอย่างไร?
ขั้นแรก คุณต้องออกแบบระบบโดยการประเมินโครงสร้างข้อมูล จากนั้นคุณควรไปยังโครงสร้างโค้ดที่จำเป็นเพื่อรองรับ
45) ขอความแตกต่างระหว่างการออกแบบเชิงวัตถุและการออกแบบตามส่วนประกอบหรือไม่
การออกแบบเชิงวัตถุสามารถสรุปได้ง่ายในระดับหนึ่งในการออกแบบตามส่วนประกอบ
46) คุณจะใช้ความหลากหลายเมื่อใด?
Polymorphism ถูกใช้เมื่อมีความจำเป็นในการแทนที่ฟังก์ชันการทำงานเมื่อสืบทอดคลาส มันเกี่ยวกับชั้นเรียนที่ใช้ร่วมกันและสัญญาที่ใช้ร่วมกัน
47) อะไรคือความแตกต่างระหว่างสแต็กและคิว?
- คิวจะเข้าก่อนออกก่อนเสมอ
- สแต็คจะเข้าหลังออกก่อนเสมอ
48) สิ่งที่จำเป็นสำหรับการทดสอบคุณภาพของโค้ดคืออะไร?
ตามความเห็นของฉัน Unit Testing Framework เป็นสิ่งจำเป็นสำหรับการทดสอบคุณภาพของโค้ด
49) คุณคิดว่าการบำรุงรักษาซอฟต์แวร์มีราคาแพงหรือไม่ เพราะเหตุใด
ตามความเห็นของฉัน การบำรุงรักษาซอฟต์แวร์จะไม่แพงเลยหากเราใช้กระบวนการพัฒนาที่เหมาะสม
50) ขอความแตกต่างระหว่างแท็กและสาขาให้ฉันหน่อยได้ไหม
แท็กมีไว้สำหรับการเผยแพร่เวอร์ชันซึ่งเป็นที่ชั่วคราวสำหรับการดำเนินการดังกล่าว อย่างไรก็ตาม สาขาจะถูกลบเมื่อรวมการเปลี่ยนแปลงเหล่านั้นเข้ากับ Trunk
51) ตัวแปรระดับคลาสที่ได้รับการป้องกันมีให้ใช้งานที่ไหน?
ตัวแปรระดับคลาสที่ได้รับการป้องกันจะพร้อมใช้งานสำหรับคลาสย่อยใดๆ ที่ได้รับมาจากคลาสพื้นฐาน
52) เป็นไปได้ไหมที่จะดำเนินการ catch block หลายอันสำหรับคำสั่ง try เดียว?
ใช่. catch หลายบล็อกสามารถดำเนินการได้สำหรับคำสั่ง try เดียว
53) เมื่อใดที่คุณจะต้องประกาศคลาสให้เป็นนามธรรม?
เราควรประกาศคลาสเป็นนามธรรมในสถานการณ์ต่อไปนี้:
- เมื่อคลาสได้รับการสืบทอดมาจากคลาสนามธรรม แต่ไม่ใช่วิธีนามธรรมทั้งหมดที่ถูกแทนที่
- ในกรณีที่มีการประกาศวิธีการอย่างน้อยหนึ่งวิธีในคลาสให้เป็นนามธรรม
54) พัฒนาอัลกอริธึมที่ส่งออกตำแหน่งปัจจุบันของคุณและรายชื่อที่ตั้งตู้ ATM ในพื้นที่นั้น รับตู้ ATM K ที่ใกล้ที่สุดไปยังที่ตั้งของคุณ
สร้างเมธอด getDistance(a, b) ที่คำนวณระยะห่างระหว่าง a และ b
รหัส:
import java.util.HashMap; import java.util.Map; import java.util.PriorityQueue; public class PrioRQueueExample { public static void main(String[] args){ PriorityQueue<Double> pq = new PriorityQueue<Double>((x,y)-> {Double z = y-x;return z.intValue(); }); PrioRQueueExample pqe = new PrioRQueueExample(); //Number of ATMs to return i.e. K int num_ATMs = 3; double curr_loc = 0.00; Map<String,Double> nallATMLocs = new HashMap<String,Double>(); //Map of ATM names and their distance co-ordinates nallATMLocs.put("atm1",45.0); nallATMLocs.put("atm2",78.0); nallATMLocs.put("atm3",54.0); nallATMLocs.put("atm4",64.0); nallATMLocs.put("atm5",35.0); nallATMLocs.put("atm6",42.0); nallATMLocs.put("atm7",57.0); nallATMLocs.put("atm7",1.00); nallATMLocs.forEach((atm,dist) ->{if(pq.size() < num_ATMs){ pq.add(pqe.getLocation(curr_loc,dist));} else{ if( pq.peek() > pqe.getLocation(curr_loc,dist)){ pq.poll(); pq.add(pqe.getLocation(curr_loc,dist)); } } }); pq.forEach(atmLoc -> System.out.println(atmLoc)); } private double getLocation(double curr,double atm){ return atm - curr; } }
คำถามสัมภาษณ์เหล่านี้จะช่วยในวีว่าของคุณ (วาจา)