50 Ερωτήσεις και Απαντήσεις Συνέντευξης Μηχανικής Λογισμικού
Ερωτήσεις και απαντήσεις για συνέντευξη προγραμματιστή λογισμικού για φρεσκάδες
1) Ποιες είναι οι σημαντικές κατηγορίες λογισμικού;
- Λογισμικό συστήματος
- Λογισμικό εφαρμογής
- Ενσωματωμένο λογισμικό
- Εφαρμογές ιστού
- Λογισμικό τεχνητής νοημοσύνης
- Επιστημονικό λογισμικό.
👉 Δωρεάν λήψη PDF: Ερωτήσεις & Απαντήσεις Συνέντευξης Μηχανικής Λογισμικού
2) Ποια είναι η κύρια διαφορά μεταξύ ενός προγράμματος υπολογιστή και ενός λογισμικού υπολογιστή;
Ένα πρόγραμμα υπολογιστή είναι ένα κομμάτι κώδικα προγραμματισμού. Εκτελεί μια καλά καθορισμένη εργασία. Από την άλλη πλευρά, το λογισμικό περιλαμβάνει κώδικα προγραμματισμού, τεκμηρίωση και οδηγό χρήσης.
3) Τι είναι η ανακατασκευή λογισμικού;
Είναι μια διαδικασία ανάπτυξης λογισμικού που γίνεται για να βελτιωθεί η δυνατότητα συντήρησης ενός συστήματος λογισμικού.
4) Περιγράψτε εν συντομία τη διαδικασία ανάπτυξης λογισμικού:
Η ανάπτυξη λογισμικού είναι ένας κύκλος ζωής που αποτελείται από τα ακόλουθα στάδια:
- Ανάλυση απαιτήσεων
- Χαρακτηριστικά
- Αρχιτεκτονική λογισμικού
- Εκτέλεση
- Δοκιμές
- Απόδειξη με έγγραφα
- Εκπαίδευση και υποστήριξη
- Συντήρηση
5) Ποια είναι τα διαθέσιμα μοντέλα SDLC;
Το Waterfall Model, το Spiral Model, το Big-bag model, το Iterative Model και το V- Model είναι μερικά από τα διάσημα Μοντέλα SDLC.
6) Τι είναι η επαλήθευση και η επικύρωση;
Επαλήθευση:
Η επαλήθευση είναι ένας όρος που αναφέρεται στο σύνολο των δραστηριοτήτων που διασφαλίζουν ότι το λογισμικό υλοποιεί μια συγκεκριμένη λειτουργία.
Επικύρωση:
Αναφέρεται στο σύνολο των δραστηριοτήτων που διασφαλίζουν ότι το λογισμικό έχει κατασκευαστεί σύμφωνα με τις ανάγκες των πελατών.
7) Στη διαδικασία ανάπτυξης λογισμικού ποια είναι η έννοια του εντοπισμού σφαλμάτων;
Ο εντοπισμός σφαλμάτων είναι η διαδικασία που οδηγεί στην αφαίρεση του σφάλματος. Είναι πολύ σημαντικό μέρος της επιτυχημένης δοκιμής.
8) Πώς μπορείτε να βεβαιωθείτε ότι ο κωδικός σας είναι ασφαλής και γρήγορος;
Στο λογισμικό, η ασφάλεια ανάπτυξης είναι πάντα πρώτη. Έτσι, εάν η εκτέλεση του προγράμματος είναι αργή τότε, θα προσπαθήσω να εντοπίσω τους λόγους εξόδου για τη χρονική του πολυπλοκότητα.
9) Ονομάστε δύο εργαλεία που χρησιμοποιούνται για την παρακολούθηση των απαιτήσεων λογισμικού;
Υπάρχουν πολλοί τρόποι για να παρακολουθείτε τις απαιτήσεις.
Δύο που χρησιμοποιούνται συνήθως είναι:
- Δημιουργήστε ένα έγγραφο προδιαγραφών απαιτήσεων για να παραθέσετε όλες τις απαιτήσεις.
- Δημιουργήστε ένα φύλλο excel στη λίστα με την απαίτηση, τον τύπο, την εξάρτηση, την προτεραιότητα κ.λπ.
10) Ποια είναι η κύρια διαφορά ανάμεσα σε ένα στέλεχος, μια κοροϊδία;
Ένα στέλεχος είναι μια ελάχιστη υλοποίηση μιας διεπαφής που επιστρέφει γενικά δεδομένα με σκληρό κώδικα, ενώ η εικονική συνήθως επαληθεύει τα αποτελέσματα σε σχέση με τις προσδοκίες. Αυτές οι προσδοκίες τίθενται στη δοκιμή.
11) Ποια γλώσσα σας αρέσει να γράφετε αλγόριθμους προγραμματισμού;
Κάθε προγραμματιστής έχει τις απόψεις του όσον αφορά τις επιλογές γλώσσας προγραμματισμού. Ωστόσο, θα πρέπει κανείς να προτιμήσει γλώσσες υψηλού επιπέδου επειδή είναι δυναμικές. Όπως ο C και C++ Γλώσσες.
12) Τι είναι το λογισμικό υπολογιστή;
Το λογισμικό υπολογιστή είναι ένα πακέτο που περιλαμβάνει ένα πρόγραμμα λογισμικού, την τεκμηρίωσή του και τον οδηγό χρήσης για τον τρόπο χρήσης του λογισμικού.
13) Σύμφωνα με εσάς ποιο μοντέλο SDLC είναι το καλύτερο;
Δεν υπάρχει τέτοια κατάταξη, καθώς τα μοντέλα SDLC υιοθετούνται ανάλογα με την ανάγκη για τη διαδικασία ανάπτυξης. Μπορεί να διαφέρει από λογισμικό σε λογισμικό.
14) Ποιος είναι ο διαχειριστής έργου λογισμικού; Ποιος είναι ο ρόλος του;
Ο διαχειριστής έργου λογισμικού είναι ένα άτομο υπεύθυνο για τη διαχείριση του έργου ανάπτυξης λογισμικού.
Ο διαχειριστής έργου κάνει τον προγραμματισμό του έργου, παρακολουθεί την πρόοδο, την επικοινωνία. Διαχειρίζεται επίσης κινδύνους και πόρους για να παραδώσει το έργο εντός χρονικών, κόστους και ποιοτικών περιορισμών.
15) Τι σημαίνει εύρος λογισμικού;
Το εύρος του λογισμικού είναι ένα καλά καθορισμένο όριο. Περιλαμβάνει κάθε είδους δραστηριότητες που γίνονται για την ανάπτυξη και παράδοση του προϊόντος λογισμικού.
Το εύρος του λογισμικού ορίζει όλες τις λειτουργίες και τα τεχνουργήματα που θα παραδοθούν ως μέρος του λογισμικού. Το πεδίο εφαρμογής προσδιορίζει επίσης τι θα κάνει το προϊόν; Ποιο δεν είναι το μέρος του έργου; Τι είναι η εκτίμηση του έργου;
Αυτή η διαδικασία είναι χρήσιμη για την εκτίμηση διαφόρων πτυχών του προϊόντος λογισμικού. Αυτή η εκτίμηση μπορεί να αποφασιστεί είτε συμβουλευόμενοι ειδικούς είτε χρησιμοποιώντας προκαθορισμένους τύπους.
16) Πώς να βρείτε το μέγεθος ενός προϊόντος λογισμικού;
Το μέγεθος του προϊόντος λογισμικού μπορεί να υπολογιστεί χρησιμοποιώντας δύο μεθόδους
- Μετρώντας τις γραμμές του παραδοθέντος κώδικα
- Καταμέτρηση παραδοθέντων σημείων συνάρτησης
17) Τι είναι τα σημεία λειτουργίας;
Τα σημεία λειτουργίας είναι τα χαρακτηριστικά που παρέχονται από το προϊόν λογισμικού. Θεωρείται ως η πιο σημαντική μέτρηση για το μέγεθος του λογισμικού.
18) Ποιες είναι οι διαθέσιμες τεχνικές εκτίμησης έργων λογισμικού;
Οι πιο ευρέως χρησιμοποιούμενες τεχνικές εκτίμησης είναι:
- Τεχνική αποσύνθεσης
- Εμπειρική τεχνική
19) Τι είναι η διαχείριση διαμόρφωσης λογισμικού;
Η διαχείριση διαμόρφωσης λογισμικού είναι μια διαδικασία παρακολούθησης και ελέγχου των αλλαγών που συμβαίνουν στο λογισμικό.
Ο έλεγχος αλλαγών είναι μια λειτουργία που διασφαλίζει ότι όλες οι αλλαγές που γίνονται στο σύστημα λογισμικού είναι συνεπείς και δημιουργούνται χρησιμοποιώντας οργανωτικούς κανόνες και κανονισμούς.
20) Πώς μπορείτε να μετρήσετε την εκτέλεση του έργου;
Μπορούμε να μετρήσουμε την εκτέλεση του έργου χρησιμοποιώντας την παρακολούθηση δραστηριότητας, τις αναφορές κατάστασης και τις λίστες ελέγχου ορόσημων.
21) Πείτε μου για μερικά εργαλεία διαχείρισης έργου.
Υπάρχουν πολλοί τύποι εργαλείων διαχείρισης που χρησιμοποιούνται ανάλογα με την ανάγκη για ένα έργο λογισμικού. Μερικά από αυτά είναι το διάγραμμα Pert, το διάγραμμα Gantt, το Ιστόγραμμα πόρων, οι αναφορές κατάστασης κ.λπ.
22) Ποιες είναι οι απαιτήσεις λογισμικού;
Οι απαιτήσεις λογισμικού είναι μια λειτουργική περιγραφή ενός προτεινόμενου συστήματος λογισμικού. Υποτίθεται ότι είναι η περιγραφή του συστήματος στόχου, των λειτουργιών και των χαρακτηριστικών του.
23) Τι είναι η μελέτη σκοπιμότητας;
Είναι ένα μέτρο για να μάθετε πόσο πρακτική και ωφέλιμη θα αποδειχθεί στον οργανισμό η ανάπτυξη έργου λογισμικού. Ο αναλυτής λογισμικού διεξάγει μια μελέτη για να γνωρίζει την οικονομική, τεχνική και λειτουργική σκοπιμότητα του έργου.
- Οικονομικός: Περιλαμβάνει το κόστος της εκπαίδευσης, το κόστος των πρόσθετων και εργαλείων και τη συνολική εκτίμηση του κόστους και των οφελών του έργου.
- Τεχνικός: Αξιολογεί την τεχνική πτυχή. Είναι δυνατή η ανάπτυξη αυτού του συστήματος; Αξιολόγηση της καταλληλότητας των μηχανημάτων και του λειτουργικού συστήματος στο οποίο θα εκτελεστεί το λογισμικό, γνώση της ανάπτυξης λογισμικού και των εργαλείων που είναι διαθέσιμα για αυτό το έργο.
- OperaTional: Εδώ ο αναλυτής πρέπει να εκτιμήσει ότι ο οργανισμός θα είναι σε θέση να προσαρμοστεί ομαλά στις αλλαγές που έγιναν σύμφωνα με τη ζήτηση για το έργο. Αξίζει να λυθεί το πρόβλημα με το εκτιμώμενο κόστος;
Μετά, μελετώντας όλα αυτά δημιουργείται η τελική έκθεση σκοπιμότητας.
24) Ποιες είναι οι λειτουργικές και μη λειτουργικές απαιτήσεις;
Οι λειτουργικές απαιτήσεις είναι λειτουργικές δυνατότητες που αναμένονται από τους χρήστες από το προτεινόμενο προϊόν λογισμικού.
Οι μη λειτουργικές απαιτήσεις σχετίζονται με την ασφάλεια, την απόδοση, την εμφάνιση και την αίσθηση της διεπαφής χρήστη.
25) Τι είναι η μέτρηση λογισμικού;
Το Software Metrics προσφέρει μέτρα για διάφορες πτυχές της διαδικασίας λογισμικού που χωρίζονται σε:
- Μετρήσεις απαίτησης: Απαιτήσεις μήκους, πληρότητα
- Μετρήσεις προϊόντος: Αριθμός γραμμών κωδικοποίησης, αντικειμενοστρεφείς μετρήσεις, μετρήσεις σχεδίασης και δοκιμής.
26) Τι είναι η σπονδυλοποίηση;
Η σπονδυλοποίηση είναι μια τεχνική που χρησιμοποιείται για τη διαίρεση ενός συστήματος λογισμικού σε διάφορες διακριτές ενότητες. Αυτό αναμένεται να εκτελεί τα καθήκοντα ανεξάρτητα.
27) Τι είναι η συνοχή;
Η συνοχή είναι ένα μέτρο που καθορίζει την ενδο-αξιοπιστία μεταξύ των στοιχείων της ενότητας.
28) Αναφέρει κάποια εργαλεία ανάλυσης και σχεδίασης λογισμικού;
Μερικά από τα πιο σημαντικά εργαλεία ανάλυσης και σχεδιασμού λογισμικού είναι:
- Διαγράμματα ροής δεδομένων
- Δομημένα Διαγράμματα
- Δομημένα Αγγλικά
- Λεξικό δεδομένων
- Ιεραρχικά διαγράμματα εξόδου διαδικασίας εισόδου
- Διαγράμματα σχέσεων οντοτήτων και πίνακες αποφάσεων
29) Τι σημαίνει διάγραμμα ροής δεδομένων επιπέδου-0;
Το υψηλότερο επίπεδο αφαίρεσης ονομάζεται Επίπεδο 0 του DFD. Ονομάζεται επίσης DFD σε επίπεδο περιβάλλοντος. Απεικονίζει ολόκληρο το πληροφοριακό σύστημα ως ένα διάγραμμα.
30) Ποια είναι η κύρια διαφορά μεταξύ των δομημένων αγγλικών και του ψευδοκώδικα;
Τα δομημένα αγγλικά είναι η μητρική αγγλική γλώσσα. Χρησιμοποιείται για τη σύνταξη της δομής μιας ενότητας προγράμματος. Χρησιμοποιεί λέξεις-κλειδιά γλώσσας προγραμματισμού. Από την άλλη πλευρά, ο Ψευδοκώδικας μοιάζει περισσότερο με τη γλώσσα προγραμματισμού χωρίς σύνταξη κάποιας συγκεκριμένης γλώσσας.
Μηχανική Λογισμικού viva Ερωτήσεις και απαντήσεις για έμπειρους
31) Τι είναι δομημένος σχεδιασμός;
Ο δομημένος σχεδιασμός είναι μια εννοιολόγηση του προβλήματος. Ονομάζεται επίσης σχεδιασμός λύσης και βασίζεται στη στρατηγική «διαίρει και βασίλευε».
32) Τι είναι ο λειτουργικός προγραμματισμός;
Είναι μια μέθοδος προγραμματισμού, η οποία χρησιμοποιεί τις έννοιες μιας μαθηματικής συνάρτησης. Παρέχει μέσα υπολογισμού ως μαθηματικές συναρτήσεις, οι οποίες επίσης παράγουν αποτελέσματα ανεξάρτητα από την κατάσταση του προγράμματος.
33) Τι είναι η Διασφάλιση Ποιότητας έναντι του Ελέγχου Ποιότητας;
Η Διασφάλιση Ποιότητας ελέγχει εάν ακολουθείται η σωστή διαδικασία κατά την ανάπτυξη του λογισμικού, ενώ ο Έλεγχος Ποιότητας ασχολείται με τη διατήρηση της ποιότητας του προϊόντος λογισμικού.
34) Τι είναι τα εργαλεία CASE;
CASE σημαίνει Computer Aided Τεχνολογία Λογισμικού. Είναι ένα σύνολο αυτοματοποιημένων προγραμμάτων εφαρμογών λογισμικού, τα οποία χρησιμοποιούνται για την υποστήριξη, ενίσχυση και ενίσχυση των δραστηριοτήτων SDLC.
35) Ποιο μοντέλο διαδικασίας αφαιρεί ελαττώματα πριν το λογισμικό μπει σε πρόβλημα;
Η μέθοδος μηχανικής λογισμικού Clean Room αφαιρεί τα ελαττώματα πριν το λογισμικό μπει σε πρόβλημα.
36) Λύστε αυτό το πρόβλημα
Υπάρχουν είκοσι διαφορετικές κάλτσες δύο τύπων σε ένα συρτάρι σε ένα σκοτεινό δωμάτιο. Ποιος είναι ο ελάχιστος αριθμός κάλτσες που πρέπει να πάρετε για να διασφαλίσετε ότι έχετε ένα ταιριαστό ζευγάρι;»
Αν σηκώσετε τρεις κάλτσες, μπορεί να είναι του ίδιου τύπου ακόμα κι αν οι πιθανότητες είναι 50%. Οι πιθανότητες δεν είναι ποτέ ίση πραγματικότητα. Επομένως, ο μόνος τρόπος για να «βεβαιωθείτε ότι έχετε ένα ταιριαστό ζευγάρι» είναι να σηκώσετε τουλάχιστον 11 αριθμούς κραδασμών.
37) Πώς μπορείτε να βεβαιωθείτε ότι ο γραπτός σας κώδικας μπορεί να χειριστεί διάφορα είδη καταστάσεων σφαλμάτων;
Μπορώ να γράψω δοκιμές που καθορίζουν τις αναμενόμενες καταστάσεις σφάλματος.
38) Εξηγήστε τις διαφορές μεταξύ ενός νήματος και μιας διαδικασίας;
Μια διεργασία είναι ένα παράδειγμα του προγράμματος υπολογιστή. Σε ένα μόνο πρόγραμμα είναι δυνατό να υπάρχουν ένα ή περισσότερα νήματα.
39) Πες μου τη διαφορά μεταξύ ενός EXE και ενός DLL;
Ένα exe είναι ένα εκτελέσιμο πρόγραμμα ενώ ένα DLL είναι ένα αρχείο που μπορεί να φορτωθεί και να εκτελεστεί από προγράμματα δυναμικά. Είναι ένα εξωτερικό αποθετήριο κώδικα για προγράμματα. Καθώς και τα δύο είναι διαφορετικά προγράμματα, χρησιμοποιήστε ξανά το ίδιο DLL αντί να έχετε αυτόν τον κώδικα στο αρχείο τους. Μειώνει επίσης τον απαιτούμενο χώρο αποθήκευσης.
40) Τι είναι η ισχυρή και η αδύναμη πληκτρολόγηση; Ποιο προτιμάται; Γιατί;
Η ισχυρή πληκτρολόγηση ελέγχει τους τύπους των μεταβλητών κατά το χρόνο μεταγλώττισης. Από την άλλη πλευρά, η αδύναμη πληκτρολόγηση ελέγχει τους τύπους του συστήματος κατά το χρόνο εκτέλεσης. Μεταξύ αυτών, η ισχυρή πληκτρολόγηση προτιμάται πάντα επειδή ελαχιστοποιεί τα σφάλματα.
41) Περιγράψτε τη διαφορά μεταξύ προγραμματισμού προσανατολισμένου στη διασύνδεση, αντικειμενοστρεφούς και προσανατολισμένου σε πτυχές.
- Ο προγραμματισμός διεπαφής βασίζεται σε συμβόλαια.
- Αντικειμενοστραφή είναι ένας τρόπος για να γράψετε κοκκώδη αντικείμενα που έχουν έναν και μόνο σκοπό.
- Ο Προγραμματισμός με προσανατολισμό στις όψεις είναι ο διαχωρισμός του κώδικα με τέτοιο τρόπο ώστε διάφορα αντικείμενα να φέρουν τις κύριες εργασίες και οι δευτερεύουσες εργασίες να μεταφέρονται από ανεξάρτητα αντικείμενα.
42) Γιατί η χρήση του catch (εξαίρεση) είναι πάντα κακή ιδέα;
Είναι κακή ιδέα γιατί:
- Καθώς δεν έχει οριστεί μεταβλητή, δεν είναι δυνατή η ανάγνωση της εξαίρεσης
- Είναι καλό να χρησιμοποιείτε μια εξαίρεση όταν έχετε γνωστούς τύπους εξαιρέσεων.
43) Τι τύποι δεδομένων διαβιβάζονται μέσω των κεφαλίδων HTTP;
Σενάριο και μεταδεδομένα μεταβιβάζονται μέσω κεφαλίδων HTTP.
44) Πώς ιεραρχείτε τις απαιτήσεις;
Αρχικά, πρέπει να σχεδιάσετε ένα σύστημα αξιολογώντας τη δομή δεδομένων. Στη συνέχεια, θα πρέπει να προχωρήσετε στη δομή του κώδικα που απαιτείται για την υποστήριξή του.
45) Δώστε μου διαφορές μεταξύ αντικειμενοστρεφούς και βασισμένου σε στοιχεία σχεδίασης;
Ο αντικειμενοστραφής σχεδιασμός μπορεί εύκολα να ενσωματωθεί σε κάποιο βαθμό σε σχεδιασμό που βασίζεται σε στοιχεία.
46) Πότε χρησιμοποιείτε τον πολυμορφισμό;
Ο πολυμορφισμός χρησιμοποιείται όταν υπάρχει ανάγκη για παράκαμψη λειτουργικότητας κατά την κληρονομική κλάση. Πρόκειται για κοινές τάξεις και κοινά συμβόλαια.
47) Ποια είναι η διαφορά μεταξύ στοίβας και ουράς;
- Η ουρά είναι πάντα First In, First Out
- Το Stack είναι πάντα Last In, First Out
48) Τι είναι απαραίτητο για τον έλεγχο της ποιότητας του κώδικα;
Σύμφωνα με εμένα, το πλαίσιο δοκιμής μονάδας είναι απαραίτητο για τη δοκιμή της ποιότητας του κώδικα.
49) Πιστεύετε ότι η συντήρηση του λογισμικού είναι ακριβή;
Σύμφωνα με εμένα, η συντήρηση του λογισμικού δεν θα είναι ποτέ δαπανηρή εάν χρησιμοποιούμε τη σωστή διαδικασία ανάπτυξης.
50) Δώστε μου διαφορές μεταξύ ετικετών και κλάδων;
Οι ετικέτες προορίζονται για έκδοση εκδόσεων που είναι προσωρινές θέσεις για να κάνετε κάτι τέτοιο. Ωστόσο, οι κλάδοι διαγράφονται όταν αυτές οι αλλαγές συγχωνεύονται στον κορμό.
51) Πού είναι διαθέσιμη μια προστατευμένη μεταβλητή επιπέδου κλάσης;
Προστατευμένες μεταβλητές επιπέδου κλάσης είναι διαθέσιμες σε οποιαδήποτε υπο-κλάση που προέρχεται από τη βασική κλάση.
52) Είναι δυνατόν να εκτελεστούν πολλαπλά μπλοκ catch για μια μεμονωμένη εντολή δοκιμής;
Ναί. Μπορούν να εκτελεστούν πολλαπλά μπλοκ catch για μια μεμονωμένη εντολή δοκιμής.
53) Πότε χρειάζεται να δηλώσετε μια τάξη ως αφηρημένη;
Θα πρέπει να δηλώσουμε μια κλάση ως αφηρημένη στις ακόλουθες περιπτώσεις:
- Όταν η κλάση κληρονομείται από μια αφηρημένη κλάση, αλλά δεν έχουν παρακαμφθεί όλες οι αφηρημένες μέθοδοι.
- Στην περίπτωση που τουλάχιστον μία από τις μεθόδους της κλάσης δηλώνεται ως αφηρημένη.
54) Αναπτύξτε έναν αλγόριθμο που εξάγει την τρέχουσα τοποθεσία σας και μια λίστα με τοποθεσίες ΑΤΜ σε αυτήν την περιοχή. Αποκτήστε τα πλησιέστερα K ATM στην τοποθεσία σας.
Δημιουργήστε μια μέθοδο 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; } }
Αυτές οι ερωτήσεις συνέντευξης θα βοηθήσουν επίσης στο viva (προφορικά) σας