Ακολουθούν οι Ερωτήσεις Συνέντευξης Συλλογών Java για πιο φρέσκους αλλά και έμπειρους υποψηφίους για να βρουν τη δουλειά τους.
1) Τι είναι το πλαίσιο στην Java;
Ένα πλαίσιο είναι μια δημοφιλής και έτοιμη αρχιτεκτονική που περιέχει ένα σύνολο κατηγοριών και διεπαφών.
2) Ποιο είναι το πλαίσιο συλλογής στην Java;
Το Collection Framework είναι μια ομαδοποίηση τάξεων και διεπαφών που χρησιμοποιείται για την αποθήκευση και διαχείριση των αντικειμένων. Παρέχει διάφορες κατηγορίες όπως Vector, ArrayList, HashSet, Stack κ.λπ. Το Java Collection framework μπορεί επίσης να χρησιμοποιηθεί για διεπαφές όπως Queue, Set, List κ.λπ.
3) Εξηγήστε την Κατηγορία Συλλογών
java.util.Collections είναι μια κλάση που αποτελείται από στατικές μεθόδους που λειτουργούν σε συλλογές. Περιέχει πολυμορφικούς αλγόριθμους για λειτουργία σε συλλογές, "περιτυλίγματα". Αυτή η τάξη περιέχει μεθόδους για αλγόριθμους, όπως δυαδική ταξινόμηση, αναζήτηση, ανακατάταξη κ.λπ.
4) Τι είναι ο hashCode ();
Το hashCode () είναι μια μέθοδος που επιστρέφει έναν ακέραιο κωδικό κατακερματισμού.
5) Διάκριση μεταξύ ArrayList και Vector στο πλαίσιο συλλογής Java.
Λίστα Array | Διάνυσμα |
Το ArrayList δεν μπορεί να συγχρονιστεί. | Το διάνυσμα μπορεί να είναι συγχρονισμένο. |
Δεν είναι μια κληρονομιά τάξη. | Είναι μια κληρονομιά τάξη. |
Μπορεί να αυξήσει το μέγεθός του κατά 50% του μεγέθους του πίνακα. | Μπορεί να αυξήσει το μέγεθός του διπλασιάζοντας το μέγεθος του πίνακα. |
Το ArrayList δεν είναι ασφαλές για νήματα. | Το διάνυσμα είναι ασφαλές για νήματα. |
6) Τι είναι το ArrayList στην Java;
Το ArrayList είναι μια δομή δεδομένων που μπορεί να τεντωθεί για να φιλοξενήσει επιπλέον στοιχεία μέσα της και να συρρικνωθεί σε μικρότερο μέγεθος όταν αφαιρούνται τα στοιχεία. Είναι μια πολύ σημαντική δομή δεδομένων χρήσιμη στο χειρισμό της δυναμικής συμπεριφοράς των στοιχείων.
7) Διαφοροποίηση μεταξύ Iterator και ListIterator
Η διαφορά μεταξύ Iterator και ListIterator είναι:
Επαναληπτής | Λίστα επαναληπτών |
Ο Iterator μπορεί να διασχίσει τα στοιχεία της συστοιχίας προς τα εμπρός. | Το ListIterator μπορεί να διασχίσει τα στοιχεία του πίνακα σε κατεύθυνση προς τα πίσω καθώς και προς τα εμπρός. |
Μπορεί να χρησιμοποιηθεί στο Queue, List και Set. | Μπορεί να χρησιμοποιηθεί στη λίστα. |
Μπορεί να εκτελέσει μόνο λειτουργία αφαίρεσης. | Μπορεί να εκτελέσει προσθήκη, αφαίρεση και ρύθμιση λειτουργίας ενώ διασχίζει τη συλλογή. |
8) Ποια είναι η διαφορά μεταξύ Iterator και απαρίθμησης;
Η διαφορά μεταξύ Iterator και απαρίθμησης
Επαναληπτής | Απαρίθμηση |
Το Iterator μπορεί να διασχίσει τόσο κληρονομιά όσο και μη κληρονομικά στοιχεία. | Η απαρίθμηση μπορεί να διασχίζει μόνο στοιχεία παλαιού τύπου. |
Το Iterator είναι γρήγορο. | Η απαρίθμηση δεν είναι γρήγορη. |
Το Iterator είναι πολύ αργό σε σύγκριση με την απαρίθμηση. | Η απαρίθμηση είναι γρήγορη σε σύγκριση με το Iterator. |
Το Iterator μπορεί να εκτελέσει λειτουργία αφαίρεσης ενώ διασχίζει τη συλλογή. | Η απαρίθμηση μπορεί να εκτελεί μόνο εγκάρσια λειτουργία στη συλλογή. |
9) Ορίστε το BlockingQueue
Το BlockingQueue είναι μια διεπαφή που χρησιμοποιείται στην Java και μπορεί να επεκτείνει την ουρά. Παρέχει ταυτόχρονη λειτουργία σε διάφορες λειτουργίες ουράς, όπως ανάκτηση, εισαγωγή, διαγραφή κ.λπ.
Η ουρά περιμένει να μην είναι κενή τη στιγμή της ανάκτησης τυχόν στοιχείων. Το BlockingQueue δεν πρέπει να περιέχει μηδενικά στοιχεία. Η εφαρμογή αυτής της ουράς είναι ασφαλής.
Η σύνταξη του BlockingQueue είναι:
public interface BlockingQueueextends Queue
10) Εξηγήστε τη μέθοδο παράκαμψης ισούται με ()
Η μέθοδος ισούται με τον έλεγχο της ομοιότητας μεταξύ δύο αντικειμένων. Σε περίπτωση που ο προγραμματιστής θέλει να ελέγξει ένα αντικείμενο βάσει της ιδιότητας, τότε πρέπει να παρακαμφθεί.
11) Ποια είναι η διαφορά μεταξύ Συγκρίσιμου και Συγκριτικού;
Η διαφορά μεταξύ Συγκρίσιμου και Συγκριτικού είναι:
Συγκρίσιμος | Συγκριτής |
Το συγκρίσιμο παρέχει τη μέθοδο σύγκρισης () για ταξινόμηση στοιχείων σε Java. | Το Comparator παρέχει μέθοδο σύγκρισης () για ταξινόμηση στοιχείων σε Java. |
Υπάρχει συγκρίσιμη διεπαφή στο πακέτο java.lang. | Η διεπαφή σύγκρισης υπάρχει στην Java. πακέτο util. |
Η λογική της ταξινόμησης πρέπει να είναι στην ίδια τάξη του οποίου το αντικείμενο πρόκειται να ταξινομήσετε. | Η λογική της ταξινόμησης θα πρέπει να είναι σε ξεχωριστή τάξη για να γράφετε διαφορετική ταξινόμηση με βάση διαφορετικά χαρακτηριστικά αντικειμένων. |
Η κλάση της οποίας τα αντικείμενα θέλετε να ταξινομήσετε πρέπει να εφαρμόσει την αντίστοιχη διεπαφή. | Η τάξη, των οποίων τα αντικείμενα θέλετε να ταξινομήσετε, δεν χρειάζεται να εφαρμόσει μια διεπαφή σύγκρισης. |
Παρέχει μονές ακολουθίες ταξινόμησης. | Παρέχει πολλαπλές ακολουθίες ταξινόμησης. |
Αυτή η μέθοδος μπορεί να ταξινομήσει τα δεδομένα σύμφωνα με τη φυσική σειρά ταξινόμησης. | Αυτή η μέθοδος ταξινομεί τα δεδομένα σύμφωνα με την προσαρμοσμένη σειρά ταξινόμησης. |
Επηρεάζει την αρχική τάξη. δηλαδή, η πραγματική τάξη αλλάζει. | Δεν επηρεάζει την αρχική τάξη, δηλαδή, η πραγματική τάξη δεν μεταβάλλεται. |
Εφαρμόζεται συχνά στο API από το Ημερολόγιο, τις τάξεις Wrapper, την ημερομηνία και τη συμβολοσειρά. | Εφαρμόζεται για την ταξινόμηση παρουσιών τάξεων τρίτων. |
Όλες οι τάξεις wrapper και String class εφαρμόζουν την αντίστοιχη διεπαφή. | Οι μόνες εφαρμοζόμενες κατηγορίες του Συγκριτή είναι το Collator και το RuleBasedColator. |
12) Εξηγήστε ισούται με () με παράδειγμα
Το Equals () επαληθεύει εάν το αριθμητικό αντικείμενο είναι ίσο με το αντικείμενο, το οποίο περνά ως όρισμα ή όχι
Η σύνταξη της μεθόδου ίσο () είναι:
public boolean equals(Object o)
Αυτή η μέθοδος παίρνει δύο παραμέτρους 1) οποιοδήποτε αντικείμενο, 2) τιμή επιστροφής. Επιστρέφει αληθές εάν το όρισμα που πέρασε δεν είναι μηδενικό και είναι αντικείμενο παρόμοιου τύπου με την ίδια αριθμητική τιμή.
Παράδειγμα:
import java.lang.Integer;public class Test {public static void main(String args[]) {Integer p = 5;Integer q = 20;Integer r =5;Short s = 5;System.out.println(p.equals(q));System.out.println(p.equals(r));System.out.println(p.equals(s));}}
13) Παραθέστε τα οφέλη της γενικής συλλογής
Τα οφέλη από τη χρήση της γενικής συλλογής είναι:
- Εάν οι προγραμματιστές χρησιμοποιούν γενική τάξη, δεν απαιτούν πληκτρολόγηση.
- Είναι ασφαλής τύπου και μπορεί να ελεγχθεί τη στιγμή της σύνταξης.
- Παρέχει τη σταθερότητα του κώδικα ανιχνεύοντας σφάλμα κατά το χρόνο σύνταξης.
14) Εξηγήστε τη μέθοδο μετατροπής ArrayList σε Array και Array σε ArrayList
Οι προγραμματιστές μπορούν να μετατρέψουν μια Array σε ArrayList χρησιμοποιώντας τη μέθοδο asList () της κατηγορίας Arrays. Είναι μια στατική μέθοδος της κατηγορίας Arrays που αποδέχεται το αντικείμενο List. Η σύνταξη της μεθόδου asList () είναι:
Arrays.asList(item)
Οι προγραμματιστές Java μπορούν να μετατρέψουν το ArrayList στο αντικείμενο List χρησιμοποιώντας σύνταξη:
List_object.toArray(new String[List_object.size()])
15) Δώστε παράδειγμα του ArrayList
Το παράδειγμα του αντίστροφου ArrayList είναι:
import java.util.ArrayList;class Test_ArrayList {public static void main(String[] args) {//Creating a generic ArrayListArrayListarlTest = new ArrayList ();//Size of arrayListSystem.out.println("Size of ArrayList at creation: " + arlTest.size());//Lets add some elements to itarlTest.add("D");arlTest.add("U");arlTest.add("K");arlTest.add("E");//Recheck the size after adding elementsSystem.out.println("Size of ArrayList after adding elements: " + arlTest.size());//Display all contents of ArrayListSystem.out.println("List of all elements: " + arlTest);//Remove some elements from the listarlTest.remove("D");System.out.println("See contents after removing one element: " + arlTest);//Remove element by indexarlTest.remove(2);System.out.println("See contents after removing element by index: " + arlTest);//Check size after removing elementsSystem.out.println("Size of arrayList after removing elements: " + arlTest.size());System.out.println("List of all elements after removing elements: " + arlTest);//Check if the list contains "K"System.out.println(arlTest.contains("K"));}}
16) Δώστε ένα παράδειγμα για να ταξινομήσετε έναν πίνακα σε φθίνουσα σειρά
Το παράδειγμα της ταξινόμησης ενός πίνακα με φθίνουσα σειρά είναι:
package com.guru99;public class SelectionSortAlgo {public static void main(String a[]){int[] myArray = {860,8,200,9};System.out.println("------Before Sort-----");printArray(myArray);selection(myArray);//sorting array using selection sortSystem.out.println("-----After Sort-----");printArray(myArray);}public static void selection(int[] array){for (int i = 0; i < array.length - 1; i++){ System.out.println("Sort Pass Number "+(i+1));int index = i;for (int j = i + 1; j < array.length; j++){System.out.println("Comparing "+ array[index] + " and " + array[j]);if (array[j] < array[index]){System.out.println(array[index] + " is greater than " + array[j] );index = j;}}int smallerNumber = array[index];array[index] = array[i];array[i] = smallerNumber;System.out.println("Swapping Elements: New Array After Swap");printArray(array);}}static void printArray(int[] array){for(int i=0; i < array.length; i++){System.out.print(array[i] + " ");}System.out.println();}}
17) Εξηγήστε τις βασικές διεπαφές του πλαισίου συλλογών Java
Το πλαίσιο συλλογής Java είναι μια ρίζα της ιεραρχίας συλλογής. Αντιπροσωπεύει μια ομάδα αντικειμένων ως στοιχεία της. Η γλώσσα προγραμματισμού Java δεν παρέχει άμεση εφαρμογή μιας τέτοιας διεπαφής.
- Set: Set είναι μια συλλογή χωρίς διπλά στοιχεία. Χρησιμοποιεί hashtable για την αποθήκευση στοιχείων.
- Λίστα: Λίστα είναι μια ταξινομημένη συλλογή που μπορεί να περιέχει διπλά στοιχεία. Επιτρέπει στους προγραμματιστές να έχουν πρόσβαση σε οποιαδήποτε στοιχεία από τα εισερχόμενά τους. Η λίστα είναι σαν πίνακας με δυναμικό μήκος.
- ΧΑΡΤΗΣ: Είναι ένα αντικείμενο που χαρτογραφεί κλειδιά σε τιμές. Δεν μπορεί να περιέχει διπλά κλειδιά. Κάθε κλειδί μπορεί να αντιστοιχιστεί σε τουλάχιστον μία τιμή.
18) Ποια είναι τα χαρακτηριστικά του Java Hashmap;
Τα χαρακτηριστικά του Java Hashmap είναι:
- Οι τιμές μπορούν να αποθηκευτούν σε ένα χάρτη σχηματίζοντας ένα ζεύγος τιμών-κλειδιών. Η τιμή μπορεί να ανακτηθεί χρησιμοποιώντας το κλειδί μεταβιβάζοντάς την στη σωστή μέθοδο.
- Εάν δεν υπάρχει στοιχείο στο χάρτη, θα εμφανιστεί ένα «NoSuchElementException».
- Το HashMap αποθηκεύει μόνο αναφορές αντικειμένων. Αυτός είναι ο λόγος για τον οποίο είναι αδύνατο να χρησιμοποιηθούν πρωτόγονοι τύποι δεδομένων όπως διπλός ή int Χρησιμοποιήστε την κατηγορία wrapper (όπως Integer ή Double).
19) Τι είναι μια στοίβα;
Μια στοίβα είναι μια ειδική περιοχή της μνήμης του υπολογιστή που αποθηκεύει προσωρινές μεταβλητές που δημιουργούνται από μια συνάρτηση. Στη στοίβα, οι μεταβλητές δηλώνονται, αποθηκεύονται και αρχικοποιούνται κατά τη διάρκεια του χρόνου εκτέλεσης.
20) Τι είναι η συνδεδεμένη λίστα;
Μια συνδεδεμένη λίστα είναι μια δομή δεδομένων που μπορεί να αποθηκεύσει μια συλλογή στοιχείων. Με άλλα λόγια, οι συνδεδεμένες λίστες μπορούν να χρησιμοποιηθούν για την αποθήκευση πολλών αντικειμένων του ίδιου τύπου. Κάθε μονάδα ή στοιχείο της λίστας αναφέρεται ως κόμβος. Ένας κόμβος στη λίστα Συνδέεται έχει τα δεδομένα του και τη διεύθυνση του επόμενου κόμβου. Είναι σαν μια αλυσίδα. Οι Συνδεδεμένες λίστες χρησιμοποιούνται για τη δημιουργία γραφημάτων και δέντρων.
21) Δώστε παράδειγμα του ArrayList
Το παράδειγμα του ArrayList είναι:
import java.util.ArrayList;class Test_ArrayList {public static void main(String[] args) {//Creating a generic ArrayListArrayListarlTest = new ArrayList ();//Size of arrayListSystem.out.println("Size of ArrayList at creation: " + arlTest.size());//Lets add some elements to itarlTest.add("D");arlTest.add("U");arlTest.add("K");arlTest.add("E");//Recheck the size after adding elementsSystem.out.println("Size of ArrayList after adding elements: " + arlTest.size());//Display all contents of ArrayListSystem.out.println("List of all elements: " + arlTest);//Remove some elements from the listarlTest.remove("D");System.out.println("See contents after removing one element: " + arlTest);//Remove element by indexarlTest.remove(2);System.out.println("See contents after removing element by index: " + arlTest);//Check size after removing elementsSystem.out.println("Size of arrayList after removing elements: " + arlTest.size());System.out.println("List of all elements after removing elements: " + arlTest);//Check if the list contains "K"System.out.println(arlTest.contains("K"));}}
22) Εξηγήστε τη συνδεδεμένη λίστα που υποστηρίζεται από την Java
Δύο τύποι συνδεδεμένων λιστών που υποστηρίζονται από την Java είναι:
- Λίστα Singly Linked: Η λίστα Singly Linked είναι ένας τύπος δομής δεδομένων. Σε μια μοναδικά συνδεδεμένη λίστα, κάθε κόμβος στη λίστα αποθηκεύει τα περιεχόμενα του κόμβου και μια αναφορά ή δείκτη στον επόμενο κόμβο στη λίστα. Δεν αποθηκεύει καμία αναφορά ή δείκτη στον προηγούμενο κόμβο.
- Λίστες με διπλή σύνδεση: Οι λίστες με διπλή σύνδεση είναι ένας ειδικός τύπος συνδεδεμένης λίστας όπου η διέλευση μεταξύ των στοιχείων δεδομένων μπορεί να γίνει και προς τις δύο κατευθύνσεις. Αυτό γίνεται εφικτό έχοντας δύο συνδέσμους σε κάθε κόμβο, έναν που συνδέεται στον επόμενο κόμβο και έναν άλλο που συνδέεται στον προηγούμενο κόμβο.
23) Εξηγήστε τις μεθόδους που παρέχονται από τη διεπαφή Queue;
Οι μέθοδοι διεπαφής Java Queue είναι:
Μέθοδος | Περιγραφή |
boolean προσθήκη (αντικείμενο) | Εισάγει καθορισμένο στοιχείο στην ουρά. Επιστρέφει αλήθεια σε περίπτωση επιτυχίας. |
boolean προσφορά (αντικείμενο) | Αυτή η μέθοδος χρησιμοποιείται για την εισαγωγή του στοιχείου στην ουρά. |
Αφαίρεση αντικειμένου () | Ανακτά και αφαιρεί την κεφαλή ουράς. |
Δημοσκόπηση αντικειμένου () | (): Ανακτά και αφαιρεί την κεφαλή ουράς ή επιστρέφει null σε περίπτωση που είναι άδεια. |
Δημοσκόπηση αντικειμένου () | Ανακτά και αφαιρεί την κεφαλή ουράς ή επιστρέφει null σε περίπτωση που είναι άδεια. |
Στοιχείο αντικειμένου () | Ανακτά τα δεδομένα από την ουρά, αλλά δεν αφαιρεί την κεφαλή του. |
Αντικείμενο αντικειμένου () | Ανακτά τα δεδομένα από την ουρά αλλά δεν αφαιρεί την κεφαλή του, ή σε περίπτωση που, εάν η ουρά είναι η ουρά είναι κενή, θα ανακτήσει null. |
24) Αναφέρετε τις μεθόδους που παρέχονται από το Stack class
Σημαντικές μέθοδοι που παρέχονται από την τάξη Stack είναι:
- push (): Σπρώξτε το στοιχείο στη στοίβα.
- κενό (): Αυτή η μέθοδος διαπιστώνει ότι είτε η στοίβα είναι κενή είτε όχι.
- pop (): Αυτή η μέθοδος συλλογής Java αφαιρεί το αντικείμενο από τη στοίβα.
- search (): Αυτή η μέθοδος αναζητά στοιχεία στη στοίβα.
- peek (): Αυτή η μέθοδος Java εξετάζει το αντικείμενο στοίβας χωρίς να το αφαιρέσει.
25) Ορίστε το κενόSet () στο πλαίσιο συλλογών Java
Μέθοδος blankSet () που επιστρέφει το κενό αμετάβλητο σύνολο όποτε οι προγραμματιστές προσπαθούν να αφαιρέσουν μηδενικά στοιχεία. Το σύνολο που επιστρέφεται από το blankSet () είναι σειριοποιήσιμο. Η σύνταξη αυτής της μεθόδου είναι:
δημόσιο στατικό τελικό
26) Διαφοροποίηση μεταξύ Συλλογής και Συλλογών
Η διαφορά μεταξύ Συλλογής και Συλλογών είναι:
Συλλογή | Συλλογές |
Η συλλογή είναι μια διεπαφή. | Οι συλλογές είναι μια τάξη. |
Αντιπροσωπεύει μια ομάδα αντικειμένων ως μία οντότητα. | Ορίζει διάφορες μεθόδους χρησιμότητας για τη συλλογή αντικειμένων. |
Η συλλογή είναι η ριζική διεπαφή του πλαισίου Java Collection. | Οι συλλογές είναι μια γενική τάξη χρησιμότητας. |
Αυτή η διεπαφή χρησιμοποιείται για την παραγωγή των δομών δεδομένων συλλογής. | Αυτή η τάξη περιέχει στατικές μεθόδους για τον χειρισμό της δομής δεδομένων. |
27) Ορίστε LinkedHashSet στο πλαίσιο συλλογής Java;
Το LinkedHashSet είναι μια υποκατηγορία της κλάσης που ονομάζεται HashSet και εφαρμόζει τη διεπαφή του συνόλου. Είναι μια καλά διατεταγμένη έκδοση του HashSet που διατηρεί μια Λίστα διπλά συνδεδεμένη σε όλα τα στοιχεία της.
28) Ποια είναι η διαφορά μεταξύ Failfast και Failafe;
Αποτυχία | Failsafe |
Δεν επιτρέπει την τροποποίηση της συλλογής κατά την επανάληψη. | Επιτρέπει την τροποποίηση της συλλογής κατά την επανάληψη. |
Μπορεί να ρίξει το ConcurrentModificationException | Δεν μπορεί να ρίξει καμία εξαίρεση. |
Χρησιμοποιεί την αρχική συλλογή για να διασχίσει τα στοιχεία. | Χρησιμοποιεί ένα πρωτότυπο αντίγραφο συλλογής για να διασχίσει τα στοιχεία. |
Δεν απαιτείται απαίτηση επιπλέον μνήμης. | Υπάρχει απαίτηση επιπλέον μνήμης. |
29) Προβολή λιστών συλλογής διεπαφής χάρτη
Οι προβολές συλλογής της διεπαφής χάρτη είναι: 1) προβολή συνόλου πλήκτρων, 2) προβολή συνόλου τιμών και 3) προβολή συνόλου εισόδων
30) Ποια είναι τα οφέλη του Collection Framework στην Java;
Τα οφέλη του Collection Framework στην Java είναι:
- Το πλαίσιο συλλογής Java προσφέρει πολύ αποδοτικές και αποτελεσματικές δομές δεδομένων που ενισχύουν την ακρίβεια και την ταχύτητα του προγράμματος.
- Το πρόγραμμα που αναπτύχθηκε με το πλαίσιο συλλογής Java είναι εύκολο να διατηρηθεί.
- Ένας προγραμματιστής μπορεί να συνδυάσει τάξεις με άλλους τύπους που έχουν ως αποτέλεσμα την αύξηση της επαναχρησιμοποίησης του κώδικα.
- Το πλαίσιο συλλογής Java επιτρέπει στους προγραμματιστές να τροποποιήσουν τους πρωτόγονους τύπους συλλογής με τον τρόπο που τους αρέσει.
31) Ποιος είναι ένας καλός τρόπος για να ταξινομήσετε τα αντικείμενα Συλλογής στην Java;
Ένας καλός τρόπος για την ταξινόμηση αντικειμένων συλλογής Java είναι η χρήση διεπαφών συγκρίσιμων και συγκριτικών. Ένας προγραμματιστής μπορεί να χρησιμοποιήσει το Collections.sort (), τα στοιχεία ταξινομούνται βάσει της παραγγελίας στην σύγκρισηTo ().
Όταν ένας προγραμματιστής χρησιμοποιεί Συλλογές, ταξινόμηση (Συγκριτής), ταξινομεί τα αντικείμενα που εξαρτώνται από τη σύγκριση () της διεπαφής Συγκριτή.
32) Εξηγήστε το Vector σε Java
Το διάνυσμα είναι ίδιο με έναν πίνακα. Έχει στοιχεία που μπορούν να προσεγγιστούν χρησιμοποιώντας μια τιμή ευρετηρίου. Τα διανύσματα μπορούν να περιέχουν μια παλαιά μέθοδο που δεν αποτελεί μέρος του πλαισίου συλλογής.
33) Ποια είναι η διαφορά μεταξύ του συνόλου και του χάρτη;
Σειρά | Χάρτης |
Το σετ ανήκει στο package-java.util. | Ο χάρτης ανήκει στο πακέτο- java.util. |
Μπορεί να επεκτείνει τη διεπαφή συλλογής. | Δεν επεκτείνει τη διεπαφή συλλογής. |
Δεν επιτρέπει διπλές τιμές. | Επιτρέπει διπλές τιμές. |
Το σετ μπορεί να ταξινομήσει μόνο μία μηδενική τιμή. | Ο χάρτης μπορεί να ταξινομήσει πολλές μηδενικές τιμές. |
34) Ορισμός κατηγορίας λεξικού
Η κατηγορία Λεξικό είναι μια κλάση Java που έχει την ικανότητα να αποθηκεύει ζεύγη τιμών-κλειδιών.
35) Ορίστε το EnumSet
java.util.EnumSet είναι Ορισμός υλοποίησης που μπορεί να χρησιμοποιηθεί με τύπους enum. Το EnumSet με όλα τα στοιχεία πρέπει να προέρχεται από έναν τύπο enum που καθορίζεται ρητά ή έμμεσα. Δεν συγχρονίζεται και δεν επιτρέπονται επίσης μηδενικά κλειδιά. Το EnumSet παρέχει μεθόδους όπως το EnumSetof (E πρώτα, E
… Υπόλοιπο), συμπλήρωμαOf (EnumSet s) και copyOf (Συλλογή γ).36) Ποιοι είναι οι δύο τρόποι για να αφαιρέσετε διπλότυπα από το ArrayList;
Δύο τρόποι για να αφαιρέσετε διπλότυπα από το ArrayList είναι:
- HashSet: Ο προγραμματιστής μπορεί να χρησιμοποιήσει το HashSet για να αφαιρέσει το διπλό στοιχείο από το ArrayList. Το μειονέκτημα είναι ότι δεν μπορεί να διατηρήσει τη σειρά εισαγωγής.
- LinkedHashSet: Οι προγραμματιστές μπορούν επίσης να διατηρήσουν τη σειρά εισαγωγής χρησιμοποιώντας το LinkedHashSet αντί για HashSet.
37) Τι είναι το IdentityHashMap;
Το IdentityHashMap είναι μια κλάση που εφαρμόζει σειριακές, κλωνοποιήσιμες διεπαφές, χάρτη και επεκτείνει την κλάση AbstractMap. Έχει σχεδιαστεί για την περίπτωση όπου υπάρχει ανάγκη σημασιολογίας για την ισότητα αναφοράς.
38) Τι είναι το WeakHashMap;
Το WeakHashMap είναι μια εφαρμογή του Java Map. Χρησιμοποιείται για την αποθήκευση ασθενών αναφορών στα κλειδιά του. Η ταξινόμηση με χρήση αυτού του χάρτη επιτρέπει τη συλλογή ενός ζεύγους κλειδιού-τιμής ως σκουπίδια. Το κλειδί του δεν αναφέρεται εκτός του WeakHashMap.
39) Ποιες είναι οι μέθοδοι για να κάνετε τη συλλογή νήματος ασφαλή;
Οι μέθοδοι για να κάνετε το νήμα συλλογής ασφαλές είναι:
- Συλλογές.synchronizedList (λίστα);
- Collections.synchronizedMap (χάρτης);
- Συλλογές.synchronizedSet (set);
40) Εξηγήστε το UnsupportedOperationException
Το UnsupportedOperationException είναι μια εξαίρεση που απορρίπτεται σε μεθόδους που δεν υποστηρίζονται από τον πραγματικό τύπο συλλογής.
Για παράδειγμα, ο Προγραμματιστής δημιουργεί μια λίστα μόνο για ανάγνωση χρησιμοποιώντας τη μέθοδο "Collections.unmodifiableList (list)" και κλήση κλήσης (), προσθήκη () ή κατάργηση (). Θα πρέπει να ρίξει ξεκάθαρα το UnsupportedOperationException.
41) Ονομάστε τις κλάσεις συλλογής που παρέχουν πρόσβαση σε τυχαία στοιχεία στα στοιχεία της
Τα μαθήματα συλλογής που παρέχουν τυχαία πρόσβαση στα στοιχεία τους είναι: 1) ArrayList, 2) HashMap, 3) TreeMap και 4) Hashtable.
42) Εξηγήστε τη διαφορά μεταξύ Queue και Deque.
Ουρά | Ντεκ |
Ονομάζεται ουρά με ένα άκρο | Ονομάζεται ουρά διπλού άκρου |
Τα στοιχεία στην ουρά προστίθενται ή καταργούνται από το ένα άκρο | Στοιχεία στην ουρά προστίθενται από κάθε άκρο μπορούν να προστεθούν και να αφαιρεθούν και από τα δύο άκρα |
Είναι λιγότερο ευέλικτο. | Είναι πιο ευέλικτο. |
43) Αναφέρετε τη διεπαφή List and Set
Διεπαφή λίστας εφαρμογής τάξης: 1) ArrayList, 2) Vector και 3) LinkedList.
Εφαρμογή της διεπαφής Set διεπαφής: 1) HashSet και 2) TreeSet.
44) Εξηγήστε το σχέδιο σχεδίασης που ακολουθείται από τον Iterator
Ο επαναληπτής ακολουθεί τις λεπτομέρειες του μοτίβου σχεδίασης επανάληψης. Παρέχει στον προγραμματιστή την πλοήγηση στις συλλογές αντικειμένων χρησιμοποιώντας μια κοινή διεπαφή χωρίς να γνωρίζει την εφαρμογή της.
45) Ποια είναι η κορυφή () της διεπαφής ουράς;
Το Peek () είναι μια μέθοδος διεπαφής ουράς. Ανακτά όλα τα στοιχεία, αλλά δεν αφαιρεί την κεφαλή ουράς. Σε περίπτωση που η ουρά είναι κενή, τότε αυτή η μέθοδος θα επιστρέψει μηδενική.
46) Τι είναι το CopyOnWriteArrayList;
Το CopyOnWriteArrayList είναι μια παραλλαγή του ArrayList στην οποία λειτουργίες όπως η προσθήκη και το σύνολο εφαρμόζονται δημιουργώντας ένα αντίγραφο του πίνακα. Είναι ασφαλές για νήματα και επομένως δεν ρίχνει το ConcurrentModificationException. Αυτό το ArrayLists επιτρέπει όλα τα στοιχεία, συμπεριλαμβανομένου του null.
47) Διαφοροποίηση μεταξύ ArrayList και LinkedList
Η διαφορά μεταξύ ArrayList και LinkedList είναι:
Λίστα Array | Συνδεδεμένη λίστα |
Χρησιμοποιεί έναν δυναμικό πίνακα. | Χρησιμοποιεί μια λίστα διπλής σύνδεσης. |
Το ArrayList δεν είναι προτιμότερο για χειραγώγηση. | Το LinkedList είναι προτιμότερο για χειρισμό. |
Το ArrayList παρέχει τυχαία πρόσβαση. | Το LinkedList δεν παρέχει τυχαία πρόσβαση. |
Το ArrayList αποθηκεύει μόνο αντικείμενα και ως εκ τούτου χρειάζεται λιγότερη επιβάρυνση της μνήμης | Το LinkedList αποθηκεύει αντικείμενο, καθώς και αντικείμενο διεύθυνσης. Ως εκ τούτου, χρειάζεται περισσότερη γενική μνήμη. |
48) Εξηγήστε τις μεθόδους της διεπαφής επαναληπτικού
Οι μέθοδοι διεπαφής επανάληψης είναι:
Μέθοδος | Περιγραφή |
δημόσιο boolean hasNext () | Επιστρέφει αληθινή στο iterator έχει στοιχεία? Διαφορετικά, επιστρέφει ψευδές. |
δημόσιο αντικείμενο επόμενο () | Αυτή η μέθοδος επιστρέφει το στοιχείο και μετακινεί το δείκτη στην επόμενη τιμή. |
δημόσιο κενό αφαίρεση () | Αυτή η μέθοδος Java μπορεί να αφαιρέσει τα τελευταία στοιχεία που επέστρεψε από τον επαναληπτή. Το δημόσιο κενό αφαίρεσης () χρησιμοποιείται λιγότερο. |
49) Ποιες είναι οι μέθοδοι της κατηγορίας HashSet;
Οι μέθοδοι της κλάσης HashSet είναι:
Μέθοδοι | Περιγραφή |
boolean προσθήκη (αντικείμενο o) | Αυτή η μέθοδος προσθέτει το στοιχείο αναφοράς σε αυτό το σύνολο εάν δεν υπάρχει ήδη. |
Το boolean περιέχει (αντικείμενο o): | Επιστρέφει αληθές εάν το σύνολο περιέχει το καθορισμένο στοιχείο. |
κενό (): | Αυτή η μέθοδος αφαιρεί τα καθορισμένα στοιχεία. |
boolean isEmpty (): | Επιστρέφει αλήθεια στην περίπτωση, το σετ δεν έχει στοιχεία. |
boolean remove (Αντικείμενο o): | Αφαιρεί το καθορισμένο στοιχείο από το σετ. |
κλώνος αντικειμένου (): | Αυτή η μέθοδος επιστρέφει ένα αντίγραφο της παρουσίας HashSet: τα ίδια τα στοιχεία δεν κλωνοποιούνται. |
επαναληπτικό επαναληπτικό () | Επιστρέφει έναν επαναληπτικό πάνω από τα στοιχεία αυτού του συνόλου. |
int μέγεθος (): | Επιστρέφει τον αριθμό των διαθέσιμων στοιχείων στο σύνολο. |
50) Ποιες είναι οι μέθοδοι της κλάσης Java TreeSet;
Οι μέθοδοι της κλάσης Java TreeSet είναι:
Μέθοδοι | Περιγραφές |
boolean addAll (Συλλογή γ) | Προσθέστε όλα τα στοιχεία της καθορισμένης συλλογής σε αυτό το σύνολο. |
Το boolean περιέχει (αντικείμενο o) | Επιστρέφει true αν το σύνολο περιέχει το στοιχείο αναφοράς. |
boolean isEmpty () | Αυτή η μέθοδος Java επιστρέφει αληθινή εάν αυτό το σύνολο δεν περιέχει στοιχεία. |
boolean remove (Αντικείμενο o) | Αφαιρέστε το καθορισμένο στοιχείο από το σετ. |
άκυρη προσθήκη (αντικείμενο o) | Προσθέτει το καθορισμένο στοιχείο στο σύνολο. |
κενό καθαρό () | Αυτή η μέθοδος Java αφαιρεί όλα τα στοιχεία από το σύνολο. |
51) Εξηγήστε το συνδεδεμένο HashSet
Η κλάση Java LinkedHashSet είναι μια συνδεδεμένη λίστα και υλοποίηση πίνακα Hash της διεπαφής Set. Περιέχει μοναδικά στοιχεία όπως το HashSet. Το Linked HashSet στην Java παρέχει επίσης προαιρετικές λειτουργίες που μπορούν να διατηρήσουν τη σειρά εισαγωγής.
52) Ποιες είναι οι σημαντικές μέθοδοι που χρησιμοποιούνται σε μια συνδεδεμένη λίστα;
Οι σημαντικές μέθοδοι που χρησιμοποιούνται στη συνδεδεμένη λίστα είναι:
Μέθοδος | Περιγραφή |
boolean add (αντικείμενο o) | Χρησιμοποιείται για την προσθήκη του καθορισμένου στοιχείου στο τέλος του διανύσματος. |
Το boolean περιέχει (αντικείμενο o) | Είναι μια μέθοδος που επιστρέφει αληθινή εάν αυτή η λίστα περιέχει το καθορισμένο στοιχείο. |
void add (ευρετήριο int, στοιχείο αντικειμένου) | Εισάγει το στοιχείο στο καθορισμένο στοιχείο του διανύσματος. |
void addFirst (αντικείμενο o) | Χρησιμοποιείται για την εισαγωγή του δεδομένου στοιχείου στην αρχή. |
void addLast (αντικείμενο o) | Χρησιμοποιείται για την προσθήκη του δεδομένου στοιχείου στο τέλος. |
Μέγεθος Int () | Αυτή η μέθοδος μπορεί να χρησιμοποιηθεί για την επιστροφή του συνολικού αριθμού στοιχείων σε μια λίστα. |
boolean remove (Αντικείμενο o) | Μπορεί να αφαιρέσει την πρώτη εμφάνιση του καθορισμένου στοιχείου από αυτήν τη λίστα. |
int indexOf (στοιχείο αντικειμένου) | Αυτή η μέθοδος Java επιστρέφει το ευρετήριο με την πρώτη εμφάνιση του στοιχείου αναφοράς σε αυτήν τη λίστα, ή -1. |
int lastIndexOf (στοιχείο αντικειμένου) | Είναι μια μέθοδος Java που επιστρέφει το ευρετήριο με την τελευταία εμφάνιση του καθορισμένου στοιχείου σε αυτήν τη λίστα, ή -1. |
53) Λίστα διαφόρων τάξεων που διατίθενται σε σετ
Διάφορες κατηγορίες που διατίθενται σε σύνολα είναι: HashSet, TreeSetand και LinkedHashSet.
54) Λίστα διαθέσιμων μεθόδων στη διεπαφή Java Queue
- boolean προσθήκη (αντικείμενο)
- boolean προσφορά (αντικείμενο)
- αφαίρεση αντικειμένου ()
- δημοσκόπηση αντικειμένου ()
- στοιχείο αντικειμένου ()
- κοίλο αντικείμενο ()
55) Διαχωρίστε μεταξύ λίστας και συνόλου.
Λίστα | Σειρά |
Μια παραγγελθείσα συλλογή στοιχείων | Μια μη ταξινομημένη συλλογή στοιχείων |
Διατηρεί τη σειρά εισαγωγής | Δεν διατηρεί τη σειρά εισαγωγής |
Επιτρέπονται διπλές τιμές | Δεν επιτρέπονται διπλές τιμές |
Μπορεί να αποθηκευτεί οποιοσδήποτε αριθμός μηδενικών τιμών | Μπορούν να αποθηκευτούν μόνο μία μηδενικές τιμές |
Το ListIterator μπορεί να χρησιμοποιηθεί για να διασχίσει τη Λίστα προς οποιαδήποτε κατεύθυνση | Το ListIterator δεν μπορεί να χρησιμοποιηθεί για να διασχίσει ένα σύνολο |
Περιέχει μια κλάση παλαιού τύπου που ονομάζεται διάνυσμα | Δεν περιέχει καμία κλάση παλαιού τύπου |
56) Εξηγήστε για κάθε βρόχο με παράδειγμα
Για κάθε βρόχο είναι μια άλλη μορφή βρόχου που χρησιμοποιείται για να διασχίσει τον πίνακα. Μειώνει σημαντικά τον κώδικα και δεν υπάρχει χρήση του ευρετηρίου ή μάλλον του μετρητή στο βρόχο.
Παράδειγμα για κάθε βρόχο:
class UsingForEach {public static void main(String[] args) {String[] arrData = {"Alpha", "Beta", "Gamma", "Delta", "Sigma"};//The conventional approach of using the for loopSystem.out.println("Using conventional For Loop:");for(int i=0; i< arrData.length; i++){System.out.println(arrData[i]);}System.out.println("\nUsing Foreach loop:");//The optimized method of using the for loop - also called the foreach loopfor (String strTemp : arrData){System.out.println(strTemp);}}}
57) Εξηγήστε τον τελεστή διαμαντιών
Ο τελεστής Diamond επιτρέπει στον μεταγλωττιστή να συλλέγει τα επιχειρήματα τύπου της γενικής κλάσης. Στην Java SE, ο προγραμματιστής μπορεί να αντικαταστήσει τον παραμετροποιημένο κατασκευαστή με ένα κενό σύνολο παραμέτρων (<>) γνωστό ως τελεστής διαμαντιών.
58) Εξηγήστε τη διεπαφή τυχαίας πρόσβασης
Η διεπαφή RandomAccess χρησιμοποιείται από υλοποιήσεις λίστας για την ένδειξη ότι υποστηρίζουν γρήγορα.
59) Ονομάστε τις κλάσεις συλλογής που εφαρμόζουν διεπαφή τυχαίας πρόσβασης
Το πακέτο Java.util έχει τάξεις που μπορούν να εφαρμόσουν διεπαφή τυχαίας πρόσβασης είναι: CopyOnWriteArrayList, Stack, ArrayList και Vector.
60) Πώς να συμμετάσχετε σε πολλές ArrayLists;
Η λίστα παρέχει μια μέθοδο addall () πολλαπλών ArrayList στην Java.
Για παράδειγμα, εξετάστε δύο λίστες 1) areaList και 2) secondAreaList. Ένας προγραμματιστής μπορεί να συμμετάσχει μαζί τους χρησιμοποιώντας το addall () όπως:
areaList.addAll (secondAreaList);
61) Εξηγήστε τη διασύνδεση deque
Java.util.Deque είναι Java, μια διεπαφή που επεκτείνει τη διεπαφή ουράς. Παρέχει υποστήριξη για την εισαγωγή και διαγραφή στοιχείων και στα δύο άκρα. Αυτή η ουρά ονομάζεται επίσης ουρά διπλού άκρου.
62) Εξηγήστε το Linkedhashmap
Το LinkedHashMap είναι η εφαρμογή της διασύνδεσης χάρτη. Μπορεί επίσης να επεκτείνει την κατηγορία HashMap. Επομένως, όπως το HashMap, το LinkedHashMap επιτρέπει στους προγραμματιστές Java να επιτρέπουν ένα μηδενικό κλειδί και περισσότερες από μία μηδενικές τιμές.
63) Εξηγήστε μεθόδους για την αφαίρεση στοιχείων από το ArrayList
Οι μέθοδοι για την αφαίρεση στοιχείων από το ArrayList είναι:
Μέθοδος | Περιγραφή |
Σαφή() | Αυτή η μέθοδος αφαιρεί τα στοιχεία από το ArrayList. |
κατάργηση (int index) | Αυτή η μέθοδος του ArrayList μπορεί να αφαιρέσει το στοιχείο σε μια συγκεκριμένη θέση. |
αφαίρεση (αντικείμενο o) | Μπορεί να αφαιρέσει την πρώτη εμφάνιση του στοιχείου αναφοράς από το ArrayList. |
αφαίρεση όλων() | Μπορεί να αφαιρέσει τη λίστα των στοιχείων που βρίσκονται σε μια συγκεκριμένη συλλογή. |
removeIf (Predicate super E> φίλτρο) | Αυτή η μέθοδος αφαιρεί στοιχεία που ικανοποιούν την αναφορά ενός κατηγορήματος. |
64) Εξηγήστε τον χάρτη. είσοδος στο χάρτη
Το Map.entry είναι μια διεπαφή Java του java.util. Έχει ένθετη διεπαφή στο χάρτη. Αυτή η διεπαφή πρέπει να είναι κατάλληλη με το όνομα της κλάσης ή της διεπαφής, στην οποία είναι μέλος. Επομένως χαρακτηρίζεται ως χάρτης. Είσοδος. Αντιπροσωπεύει ένα ζεύγος κλειδιών και τιμών που μπορεί να αποτελέσει στοιχείο ενός χάρτη.
Αυτή η μέθοδος επιστρέφει μια προβολή της συλλογής. Για παράδειγμα, θεωρήστε το cityMap ως χάρτη. Ο προγραμματιστής μπορεί να χρησιμοποιήσει το entrySet () για να πάρει την προβολή του χάρτη που έχει ένα στοιχείο Map.Entry. Ο προγραμματιστής μπορεί επίσης να χρησιμοποιήσει το getKey () και getValue () του χάρτη. Εισαγάγετε για να πάρετε το ζεύγος κλειδιού και την τιμή του χάρτη.
65) Ποια μέθοδος χρησιμοποιείται για την ταξινόμηση ενός πίνακα σε αύξουσα σειρά;
Η μέθοδος πλαισίου συλλογής Java, Collections.sort () χρησιμοποιείται για την ταξινόμηση ενός πίνακα σε αύξουσα σειρά.
66) Πώς να μετρήσετε την απόδοση ενός ArrayList;
Η απόδοση του ArrayList μπορεί να μετρηθεί με:
- Προσθήκη στοιχείου: Ο προγραμματιστής μπορεί να προσθέσει ένα στοιχείο στο τέλος του ArrayList χρησιμοποιώντας τη μέθοδο add (E e). Είναι O (1). Στο χειρότερο σενάριο, μπορεί να πάει στο O (n). Αυτό μπορεί να συμβεί εάν ο προγραμματιστής προσθέσει περισσότερα στοιχεία από την χωρητικότητα του πίνακα.
- Ανάκτηση στοιχείου : - Ο προγραμματιστής μπορεί να έχει πρόσβαση στο ευρετήριο του πίνακα χρησιμοποιώντας το get (int index). Η απόδοση, σε αυτήν την περίπτωση, μπορεί να μετρηθεί χρησιμοποιώντας το ArrayList get () είναι O (1).
- Αφαίρεση στοιχείου: Σε περίπτωση που, εάν οι προγραμματιστές αφαιρούν στοιχείο χρησιμοποιώντας την κατάργηση (int index), τότε η απόδοση του ArrayList μπορεί να υπολογιστεί με τη χρήση της εν λόγω κατάργησης (int index), η μέθοδος O (n - index).
67) Εξηγήστε την τάξη LinkedList
Η κλάση LinkedList στην Java εφαρμόζει το Deque και το List χρησιμοποιώντας μια διπλά συνδεδεμένη λίστα. Υπάρχει ένας ιδιωτικός κόμβος κλάσης σε μια λίστα διπλής σύνδεσης που παρέχει τη δομή της. Έχει επίσης μια μεταβλητή στοιχείου για τη διατήρηση της τιμής και της αναφοράς στην κλάση κόμβων. Αυτό μπορεί να χρησιμοποιηθεί για τη σύνδεση των επόμενων και προηγούμενων κόμβων.
68) Δώστε ένα παράδειγμα του Hashmap
Το παράδειγμα του Hashmap είναι:
import java.util.HashMap;import java.util.Map;public class Sample_TestMaps{public static void main(String[] args){MapobjMap = new HashMap ();objMap.put("Name", "Suzuki");objMap.put("Power", "220");objMap.put("Type", "2-wheeler");objMap.put("Price", "85000");System.out.println("Elements of the Map:");System.out.println(objMap);}}
69) Πώς να επαναλάβετε τον χάρτη;
Ο προγραμματιστής δεν μπορεί να επαναλάβει απευθείας τον χάρτη, αλλά, αυτή η διεπαφή έχει δύο μεθόδους που παρέχουν ένα σύνολο προβολών χάρτη. Αυτές οι μέθοδοι είναι:
- Ορισμός
> entrySet (): Είναι μια μέθοδος που επιστρέφει ένα σύνολο με τις αναφορές των καταχωρήσεων στο χάρτη. Αυτές οι καταχωρίσεις γενικά αντιτίθενται, ο οποίος έχει τύπο χάρτη. Είσοδος. - Set
keySet (): Αυτή η μέθοδος Java επιστρέφει ένα σύνολο που έχει το κλειδί χάρτη.
70) Εξηγήστε το Treemap στην Java
Το TreeMap είναι μια κλάση που εφαρμόζει τη διασύνδεση χαρτών LinkedHashMap και HashMap. Μπορεί επίσης να εφαρμόσει τη διασύνδεση NavigableMap και μπορεί να επεκτείνει την κλάση AbstractMap.
71) Ποια είναι η διαφορά μεταξύ Hashmap και Hashtable;
Χασμάπ | Hashtable |
Δεν είναι συγχρονισμένο. | Είναι συγχρονισμένο. |
Το HashMap επιτρέπει ένα κλειδί ως μηδενική τιμή. | Το HashTable δεν επιτρέπει μηδενικές τιμές. |
Το Iterator χρησιμοποιείται για να διασχίσει το HashMap. | Είτε ο Iterator είτε ο Enumerator χρησιμοποιούνται για τη διέλευση ενός HashTable. |
Μπορεί να χρησιμοποιηθεί και για το HashTable, το HashMap και είναι γρήγορο. | Μπορεί να χρησιμοποιηθεί με HashTable και δεν είναι ασφαλές |
Το HashMap αποδίδει ταχύτερα από το HashTable. | Το Hashtable δεν είναι πολύ πιο γρήγορο σε σύγκριση με το HashMap. |
72) Εξηγήστε την εσωτερική λειτουργία του HashSet στην Java
Το HashSet στην Java χρησιμοποιεί εσωτερικά το HashMap για την αποθήκευση στοιχείων. Μπορεί επίσης να αποθηκεύσει μοναδικές τιμές χωρίς διπλές τιμές.
Στην Java, ο προγραμματιστής HashSet μπορεί να έχει τη μέθοδο add (E e) που παίρνει μόνο το στοιχείο για προσθήκη ως παράμετρο. Δεν δέχεται το κλειδί και το ζεύγος τιμών.
73) Εξηγήστε τη σημειογραφία Big-O με ένα παράδειγμα
Η σημειογραφία Big-O απεικονίζει την απόδοση ενός αλγορίθμου ως τον αριθμό των στοιχείων στο ArrayList. Ένας προγραμματιστής μπορεί να χρησιμοποιήσει τη σημείωση Big-O για να επιλέξει την υλοποίηση της συλλογής. Βασίζεται στην απόδοση, στο χρόνο και στη μνήμη.
Για παράδειγμα, το ArrayList get (index i) είναι μια μέθοδος για την εκτέλεση μιας λειτουργίας σταθερού χρόνου. Δεν εξαρτάται από τον συνολικό αριθμό στοιχείων που είναι διαθέσιμα στη λίστα. Επομένως, η απόδοση στη σημειογραφία Big-O είναι O (1).
74) Εξηγήστε τις βέλτιστες πρακτικές στο Java Collection Framework
Οι βέλτιστες πρακτικές στο Java Collection Framework είναι:
- Επιλέξτε τον σωστό τύπο συλλογής εξαρτάται από την ανάγκη.
- Αποφύγετε την αναδιαμόρφωση ή την αλλαγή μεγέθους εκτιμώντας τον συνολικό αριθμό στοιχείων που θα αποθηκευτούν σε τάξεις συλλογής.
- Γράψτε ένα πρόγραμμα Java από άποψη διεπαφών. Αυτό θα βοηθήσει τον προγραμματιστή να αλλάξει την εφαρμογή του χωρίς κόπο στο μέλλον.
- Ένας προγραμματιστής μπορεί να χρησιμοποιήσει το Generics για ασφάλεια τύπου.
- Χρησιμοποιήστε αμετάβλητες τάξεις που δίνονται από το Java Development Kit. Αποφύγετε την εφαρμογή ίσων () και hashCode () για προσαρμοσμένες κλάσεις.
- Ένας προγραμματιστής θα πρέπει να χρησιμοποιεί την κλάση βοηθητικών προγραμμάτων Συλλογές για αλγόριθμους ή να λαμβάνει συλλογές μόνο για ανάγνωση, συγχρονισμό ή κενές. Αυτό θα βελτιώσει την επαναχρησιμοποίηση κώδικα με χαμηλή συντήρηση.
75) Εξηγήστε διάφορους τύπους ουρών στην Java
Υπάρχουν τρεις τύποι ουρών στην Java:
- Ουρά προτεραιότητας: Είναι ένας ειδικός τύπος ουράς όπου τα στοιχεία ταξινομούνται σύμφωνα με τη φυσική σειρά τους ή τον προσαρμοσμένο συγκριτή.
- Κυκλική ουρά: Είναι ένας τύπος ουράς στην οποία εκτελούνται οι λειτουργίες χρήστη βάσει της μεθόδου FIFO. Το τελευταίο στοιχείο συνδέεται με την πρώτη θέση προκειμένου να δημιουργηθεί ένας κύκλος.
- Ουρά διπλού άκρου: Η ουρά διπλού άκρου είναι ένας αφηρημένος τύπος δεδομένων που γενικεύει μια ουρά. Τα στοιχεία σε αυτήν την ουρά μπορούν να προστεθούν ή να αφαιρεθούν από το κεφάλι ή την ουρά.
76) Ποια είναι η διαφορά μεταξύ στοίβας και ουράς;
Σωρός | Ουρά |
Η αρχή λειτουργίας της στοίβας είναι LIFO. | Η αρχή της ουράς εργασίας είναι το FIFO. |
Το ένα άκρο χρησιμοποιείται για την πραγματοποίηση της εισαγωγής ή διαγραφής στοιχείων. | Το ένα άκρο χρησιμοποιείται για την εκτέλεση εισαγωγής και ένα άλλο άκρο χρησιμοποιείται για τη διαγραφή στοιχείων. |
Χρησιμοποιεί έναν δείκτη. | Χρησιμοποιεί δύο δείκτες σε μια απλή ουρά. |
Δεν έχει καμία παραλλαγή. | Διαθέτει παραλλαγές όπως ουρά προτεραιότητας, κυκλική ουρά, ουρά διπλού τερματισμού. |
Είναι εύκολο στη χρήση. | Δεν είναι εύκολο στη χρήση. |
77) Ποια είναι η διαφορά μεταξύ πίνακα και στοίβας;
Η διαφορά μεταξύ πίνακα και στοίβας είναι:
Πίνακας | Σωρός |
Είναι μια συλλογή στοιχείων που προσδιορίζονται από το ευρετήριο. | Είναι μια λειτουργία συλλογής που χρησιμεύει ως λειτουργίες push και pop. |
Έχει στοιχεία τα οποία είναι ίδια. | Έχει στοιχεία διαφορετικών τύπων δεδομένων. |
Τα στοιχεία μπορούν να αφαιρεθούν ή να προστεθούν στον πίνακα χρησιμοποιώντας λειτουργία τυχαίας πρόσβασης. | Τα στοιχεία μπορούν να αφαιρεθούν ή να προστεθούν σε μια στοίβα χρησιμοποιώντας τη λειτουργία LIFO. |
78) Ορισμός επαναληπτικού ()
Το Iterator () είναι μια διεπαφή που παρέχει μεθόδους για να επαναλάβει τη Συλλογή. Ο Iterator μπορεί να αντικαταστήσει την απαρίθμηση στην Java. Επιτρέπει στον καλούντα να αφαιρέσει στοιχεία από τη συλλογή. Η μέθοδος παρέχει έναν γενικό τρόπο διασταύρωσης χρησιμοποιώντας στοιχεία της συλλογής και υλοποιώντας το μοτίβο του επαναληπτικού σχεδιασμού.
79) Ποιοι είναι οι διάφοροι τρόποι επανάληψης μιας λίστας;
Ο προγραμματιστής Java Collection Framework μπορεί να επαναλάβει μια λίστα με δύο τρόπους: 1) Χρήση επαναληπτικού προγράμματος και 2) χρήση για κάθε βρόχο.
80) Ποια είναι τα πλεονεκτήματα της στοίβας;
Τα πλεονεκτήματα της στοίβας είναι:
- Σας βοηθά να διαχειριστείτε τα δεδομένα με τη μέθοδο Last In First Out (LIFO), κάτι που δεν είναι δυνατό με τη λίστα και τον πίνακα "Συνδεδεμένοι".
- Όταν καλείται μια συνάρτηση, οι τοπικές μεταβλητές αποθηκεύονται σε μια στοίβα και καταστρέφεται αυτόματα μόλις επιστραφεί.
- Μια στοίβα χρησιμοποιείται όταν μια μεταβλητή δεν χρησιμοποιείται εκτός αυτής της συνάρτησης.
- Σας επιτρέπει να ελέγχετε τον τρόπο κατανομής και αφαίρεσης της μνήμης.
- Η στοίβα καθαρίζει αυτόματα το αντικείμενο.
- Δεν καταστρέφεται εύκολα
- Δεν είναι δυνατή η αλλαγή μεγέθους των μεταβλητών.