80 Java Ερωτήσεις και απαντήσεις συνέντευξης Collections (2025)

Εδώ είναι Java Collections Ερωτήσεις συνέντευξης για πιο φρέσκους αλλά και έμπειρους υποψηφίους για να πάρουν τη δουλειά των ονείρων τους.

 

Java Collections Συνέντευξη Ερωτήσεις και Απαντήσεις για Freshers

1) Τι είναι το πλαίσιο Java?

Ένα πλαίσιο είναι μια δημοφιλής και έτοιμη αρχιτεκτονική που περιέχει ένα σύνολο κλάσεων και διεπαφών.


2) Σε τι βρίσκεται το πλαίσιο συλλογής Java?

Το Collection Framework είναι μια ομαδοποίηση κλάσεων και διεπαφών που χρησιμοποιείται για την αποθήκευση και τη διαχείριση των αντικειμένων. Παρέχει διάφορες κλάσεις όπως Vector, ArrayList, HashSet, Stack κ.λπ. Java Το πλαίσιο συλλογής μπορεί επίσης να χρησιμοποιηθεί για διεπαφές όπως Queue, Set, List κ.λπ.

Java Συλλογές Ερωτήσεις συνέντευξης


3) Εξηγήστε την τάξη συλλογών

Το java.util.Collections είναι μια κλάση που αποτελείται από στατικές μεθόδους που λειτουργούν σε συλλογές. Περιέχει πολυμορφικούς αλγόριθμους για λειτουργία σε συλλογές, «περιτυλίγματα». Αυτή η κλάση περιέχει μεθόδους για αλγόριθμους, όπως δυαδική ταξινόμηση, αναζήτηση, ανακάτεμα κ.λπ.


4) Τι είναι το hashCode();

Η hashCode() είναι μια μέθοδος που επιστρέφει έναν ακέραιο κωδικό κατακερματισμού.


5) Διακρίνετε μεταξύ ArrayList και Vector στο Java πλαίσιο συλλογής.

Λίστα Array διάνυσμα
Το ArrayList δεν μπορεί να συγχρονιστεί. Το διάνυσμα μπορεί να είναι συγχρονισμένο.
Δεν είναι κατηγορία παλαιού τύπου. Είναι μια κλάση παλαιού τύπου.
Μπορεί να αυξήσει το μέγεθός του κατά 50% του μεγέθους του πίνακα. Μπορεί να αυξήσει το μέγεθός του διπλασιάζοντας το μέγεθος του πίνακα.
Το ArrayList δεν είναι ασφαλές για νήματα. Το διάνυσμα είναι ασφαλές για νήματα.

6) Σε τι βρίσκεται το ArrayList Java?

Λίστα Array είναι μια δομή δεδομένων που μπορεί να τεντωθεί για να χωρέσει πρόσθετα στοιχεία μέσα της και να συρρικνωθεί σε μικρότερο μέγεθος όταν αφαιρεθούν στοιχεία. Είναι μια πολύ σημαντική δομή δεδομένων χρήσιμη για το χειρισμό της δυναμικής συμπεριφοράς των στοιχείων.


7) Διαφοροποίηση μεταξύ Iterator και ListIterator

Η διαφορά μεταξύ Iterator και ListIterator είναι:

Επαναληπτής Λίστα επαναληπτών
Ο Iterator μπορεί να διασχίσει τα στοιχεία του πίνακα προς τα εμπρός. Το ListIterator μπορεί να διασχίσει τα στοιχεία του πίνακα σε κατευθύνσεις προς τα πίσω αλλά και προς τα εμπρός.
Μπορεί να χρησιμοποιηθεί σε ουρά, λίστα και σετ. Μπορεί να χρησιμοποιηθεί στη λίστα.
Μπορεί να εκτελέσει μόνο λειτουργία αφαίρεσης. Μπορεί να εκτελέσει λειτουργία προσθήκης, αφαίρεσης και ρύθμισης κατά τη διέλευση της συλλογής.

8) Ποια είναι η διαφορά μεταξύ Iterator και Enumeration;

Η διαφορά μεταξύ Iterator και Enumeration

Επαναληπτής Απαρίθμηση
Το Iterator μπορεί να διασχίσει τόσο κληρονομικά όσο και μη στοιχεία. Η απαρίθμηση μπορεί να διασχίσει μόνο στοιχεία παλαιού τύπου.
Το Iterator είναι γρήγορο. Η απαρίθμηση δεν είναι γρήγορη.
Το Iterator είναι πολύ αργό σε σύγκριση με το Enumeration. Η απαρίθμηση είναι γρήγορη σε σύγκριση με το Iterator.
Το Iterator μπορεί να εκτελέσει τη λειτουργία αφαίρεσης ενώ διασχίζει τη συλλογή. Η απαρίθμηση μπορεί να εκτελέσει μόνο εγκάρσια λειτουργία στη συλλογή.

9) Ορίστε το BlockingQueue

Το BlockingQueue είναι μια διεπαφή που χρησιμοποιείται σε Java που μπορεί να επεκτείνει την ουρά. Παρέχει ταυτόχρονη λειτουργία σε διάφορες λειτουργίες ουράς όπως ανάκτηση, εισαγωγή, διαγραφή κ.λπ.

Η ουρά περιμένει να μην είναι άδεια κατά τη στιγμή της ανάκτησης οποιωνδήποτε στοιχείων. Το BlockingQueue δεν πρέπει να περιέχει μηδενικά στοιχεία. Η υλοποίηση αυτής της ουράς είναι ασφαλής ως προς το νήμα.

Η σύνταξη του BlockingQueue είναι:

public interface BlockingQueue<E> extends Queue <E>

10) Εξηγήστε τη μέθοδο override equals().

Η μέθοδος ίσον χρησιμοποιείται για τον έλεγχο της ομοιότητας μεταξύ δύο αντικειμένων. Σε περίπτωση που ο προγραμματιστής θέλει να ελέγξει ένα αντικείμενο με βάση την ιδιότητα, τότε πρέπει να παρακαμφθεί.


11) Ποια είναι η διαφορά μεταξύ Συγκρίσιμου και Συγκριτή;

Η διαφορά μεταξύ Συγκρίσιμου και Συγκριτή είναι:

Συγκρίσιμος Ο συγκριτής
Το Comparable παρέχει τη μέθοδο compareTo() για την ταξινόμηση στοιχείων Java. Το Comparator παρέχει τη μέθοδο compare() για την ταξινόμηση στοιχείων Java.
Συγκρίσιμη διεπαφή υπάρχει στο πακέτο java.lang. Η διεπαφή σύγκρισης υπάρχει στη Java. συσκευασία χρήσης.
Η λογική της ταξινόμησης πρέπει να είναι στην ίδια κλάση της οποίας το αντικείμενο πρόκειται να ταξινομήσετε. Η λογική της ταξινόμησης θα πρέπει να βρίσκεται σε ξεχωριστή κλάση για να γράφει διαφορετική ταξινόμηση με βάση διαφορετικά χαρακτηριστικά αντικειμένων.
Η κλάση της οποίας τα αντικείμενα θέλετε να ταξινομήσετε πρέπει να εφαρμόσει τη συγκρίσιμη διεπαφή. Η κλάση, της οποίας τα αντικείμενα θέλετε να ταξινομήσετε, δεν χρειάζεται να εφαρμόσει μια διεπαφή σύγκρισης.
Παρέχει μεμονωμένες αλληλουχίες ταξινόμησης. Παρέχει πολλαπλές ακολουθίες ταξινόμησης.
Αυτή η μέθοδος μπορεί να ταξινομήσει τα δεδομένα σύμφωνα με τη φυσική σειρά ταξινόμησης. Αυτή η μέθοδος ταξινομεί τα δεδομένα σύμφωνα με την προσαρμοσμένη σειρά ταξινόμησης.
Επηρεάζει την αρχική τάξη. δηλαδή, η πραγματική τάξη αλλάζει. Δεν επηρεάζει την αρχική κλάση, δηλαδή, η πραγματική κλάση δεν αλλάζει.
Εφαρμόζεται συχνά στο API ανά Ημερολόγιο, κλάσεις Wrapper, Date και String. Εφαρμόζεται για την ταξινόμηση παρουσιών κλάσεων τρίτων.
Όλες οι κατηγορίες περιτυλίγματος και η κλάση String υλοποιούν τη συγκρίσιμη διεπαφή. Οι μόνες κλάσεις του Comparator που υλοποιούνται είναι το Collator και το RuleBasedColator.

12) Εξηγήστε την equals() με παράδειγμα

Η Equals() επαληθεύει εάν το αριθμητικό αντικείμενο είναι ίσο με το αντικείμενο, το οποίο μεταβιβάζεται ως όρισμα ή όχι.

Η σύνταξη της μεθόδου equals() είναι:

public boolean equals(Object o)

Αυτή η μέθοδος παίρνει δύο παραμέτρους 1) οποιοδήποτε αντικείμενο, 2) επιστρέφει τιμή. Επιστρέφει true εάν το όρισμα που πέρασε δεν είναι null και είναι αντικείμενο παρόμοιου τύπου με την ίδια αριθμητική τιμή.

Παράδειγμα:

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

Οι προγραμματιστές μπορούν να μετατρέψουν έναν πίνακα σε 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 ArrayList
  ArrayList<String> arlTest = new ArrayList<String>();
  //Size of arrayList
  System.out.println("Size of ArrayList at creation: " + arlTest.size());
  //Lets add some elements to it
  arlTest.add("D");
  arlTest.add("U");
  arlTest.add("K");
  arlTest.add("E");

  //Recheck the size after adding elements
  System.out.println("Size of ArrayList after adding elements: " + arlTest.size());

  //Display all contents of ArrayList
  System.out.println("List of all elements: " + arlTest);

  //Remove some elements from the list
  arlTest.remove("D");
  System.out.println("See contents after removing one element: " + arlTest);

  //Remove element by index
  arlTest.remove(2);
  System.out.println("See contents after removing element by index: " + arlTest);
  //Check size after removing elements
  System.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 sort  
 		System.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 Η γλώσσα προγραμματισμού δεν παρέχει άμεση υλοποίηση μιας τέτοιας διεπαφής.

  • Σειρά: Το σύνολο είναι μια συλλογή που δεν έχει διπλά στοιχεία. Χρησιμοποιεί hashtable για την αποθήκευση στοιχείων.
  • Λίστα: Η λίστα είναι μια ταξινομημένη συλλογή που μπορεί να περιέχει διπλά στοιχεία. Επιτρέπει στους προγραμματιστές να έχουν πρόσβαση σε οποιοδήποτε στοιχείο από τα εισερχόμενά του. Η λίστα είναι σαν ένας πίνακας με δυναμικό μήκος.
  • ΧΑΡΤΗΣ: Είναι ένα αντικείμενο που αντιστοιχίζει κλειδιά σε τιμές. Δεν μπορεί να περιέχει διπλά κλειδιά. Κάθε κλειδί μπορεί να αντιστοιχιστεί σε τουλάχιστον μία τιμή.

18) Ποια είναι τα χαρακτηριστικά του Java Χασμάπ;

Χαρακτηριστικά Java Χασμάπ είναι:

  • Οι τιμές μπορούν να αποθηκευτούν σε έναν χάρτη σχηματίζοντας ένα ζεύγος κλειδιού-τιμής. Η τιμή μπορεί να ανακτηθεί χρησιμοποιώντας το κλειδί περνώντας τη στη σωστή μέθοδο.
  • Εάν δεν υπάρχει κανένα στοιχείο στον Χάρτη, θα δημιουργήσει ένα 'NoSuchElementException'.
  • Το HashMap αποθηκεύει μόνο αναφορές αντικειμένων. Αυτός είναι ο λόγος για τον οποίο είναι αδύνατο να χρησιμοποιηθούν πρωτόγονοι τύποι δεδομένων όπως double ή int. Χρησιμοποιήστε την κλάση περιτυλίγματος (όπως Integer ή Double) αντι αυτου.


19) Τι είναι η Στοίβα;

Μια στοίβα είναι μια ειδική περιοχή της μνήμης του υπολογιστή που αποθηκεύει προσωρινές μεταβλητές που δημιουργούνται από μια συνάρτηση. Στη στοίβα, οι μεταβλητές δηλώνονται, αποθηκεύονται και αρχικοποιούνται κατά τη διάρκεια του χρόνου εκτέλεσης.


20) Τι είναι η συνδεδεμένη λίστα;

Μια συνδεδεμένη λίστα είναι μια δομή δεδομένων που μπορεί να αποθηκεύσει μια συλλογή στοιχείων. Με άλλα λόγια, οι συνδεδεμένες λίστες μπορούν να χρησιμοποιηθούν για την αποθήκευση πολλών αντικειμένων του ίδιου τύπου. Κάθε μονάδα ή στοιχείο της λίστας αναφέρεται ως κόμβος. Ένας κόμβος στη λίστα Συνδεδεμένοι έχει τα δεδομένα του και τη διεύθυνση του επόμενου κόμβου. Είναι σαν μια αλυσίδα. Οι Συνδεδεμένες Λίστες χρησιμοποιούνται για τη δημιουργία γραφημάτων και δέντρων.


Java Συλλογές Συνέντευξη Ερωτήσεις και Απαντήσεις για Έμπειρους

21) Δώστε παράδειγμα ArrayList

Το παράδειγμα του ArrayList είναι:

import java.util.ArrayList;
class Test_ArrayList {
 public static void main(String[] args) {
  //Creating a generic ArrayList
  ArrayList<String> arlTest = new ArrayList<String>();
  //Size of arrayList
  System.out.println("Size of ArrayList at creation: " + arlTest.size());
  //Lets add some elements to it
  arlTest.add("D");
  arlTest.add("U");
  arlTest.add("K");
  arlTest.add("E");

  //Recheck the size after adding elements
  System.out.println("Size of ArrayList after adding elements: " + arlTest.size());

  //Display all contents of ArrayList
  System.out.println("List of all elements: " + arlTest);

  //Remove some elements from the list
  arlTest.remove("D");
  System.out.println("See contents after removing one element: " + arlTest);

  //Remove element by index
  arlTest.remove(2);
  System.out.println("See contents after removing element by index: " + arlTest);

  //Check size after removing elements
  System.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 είναι:

  • Λίστα μεμονωμένα συνδεδεμένα: Η λίστα μεμονωμένα συνδεδεμένα είναι ένας τύπος δομής δεδομένων. Σε μια μεμονωμένη συνδεδεμένη λίστα, κάθε κόμβος στη λίστα αποθηκεύει τα περιεχόμενα του κόμβου και μια αναφορά ή δείκτη στον επόμενο κόμβο στη λίστα. Δεν αποθηκεύει καμία αναφορά ή δείκτη στον προηγούμενο κόμβο.
  • Λίστες με διπλή σύνδεση: Οι διπλά συνδεδεμένες λίστες είναι ένας ειδικός τύπος συνδεδεμένης λίστας όπου η διέλευση στα στοιχεία δεδομένων μπορεί να γίνει και προς τις δύο κατευθύνσεις. Αυτό γίνεται εφικτό έχοντας δύο συνδέσμους σε κάθε κόμβο, έναν που συνδέεται με τον επόμενο κόμβο και έναν άλλο που συνδέεται με τον προηγούμενο κόμβο.

23) Εξηγήστε τις μεθόδους που παρέχονται από τη διεπαφή Queue;

Μέθοδοι Java Η διεπαφή ουράς είναι:

Μέθοδος Descriptιόν
boolean add(object) Εισάγει το καθορισμένο στοιχείο στην ουρά. Επιστρέφει αληθινό σε περίπτωση επιτυχίας.
boolean προσφορά(αντικείμενο) Αυτή η μέθοδος χρησιμοποιείται για την εισαγωγή του στοιχείου στην ουρά.
Αφαίρεση αντικειμένου () Ανακτά και αφαιρεί την κεφαλή της ουράς.
Δημοσκόπηση αντικειμένου () (): Ανακτά και αφαιρεί το κεφάλι της ουράς ή το μηδενικό σε περίπτωση που είναι κενό.
Δημοσκόπηση αντικειμένου () Ανακτά και αφαιρεί το κεφάλι της ουράς ή το μηδενικό σε περίπτωση που είναι κενό.
Στοιχείο αντικειμένου () Ανακτά τα δεδομένα από την ουρά, αλλά δεν αφαιρεί το κεφάλι της.
Αντικείμενο αντικειμένου () Ανακτά τα δεδομένα από την ουρά, αλλά δεν αφαιρεί την κεφαλή της, ή σε περίπτωση που, εάν η ουρά είναι η ουρά είναι κενή, θα ανακτήσει τη μηδενική.

24) Αναφέρετε τις μεθόδους που παρέχονται από την κλάση Stack

Σημαντικές μέθοδοι που παρέχονται από την κλάση Stack είναι:

  • Σπρώξτε(): Σπρώξτε το αντικείμενο στη στοίβα.
  • άδειο (): Αυτή η μέθοδος βρίσκει ότι είτε η στοίβα είναι άδεια είτε όχι.
  • ποπ (): Αυτός ο διαλογισμός στα Java Η μέθοδος πλαισίου συλλογής αφαιρεί το αντικείμενο από τη στοίβα.
  • Αναζήτηση (): Αυτή η μέθοδος αναζητά στοιχεία στη στοίβα.
  • ματιά (): Αυτός ο διαλογισμός στα Java Η μέθοδος εξετάζει το αντικείμενο στοίβας χωρίς να το αφαιρέσει.

25) Ορίστε την άδειαSet() στο Java πλαίσιο συλλογών

Μέθοδος valaSet() που επιστρέφει το κενό αμετάβλητο σύνολο κάθε φορά που οι προγραμματιστές προσπαθούν να αφαιρέσουν μηδενικά στοιχεία. Το σύνολο που επιστρέφεται από την άδειαSet() είναι σειριοποιήσιμο. Η σύνταξη αυτής της μεθόδου είναι:

δημόσιος στατικός τελικός Σειρά άδειο σετ()


26) Διαφοροποίηση μεταξύ Συλλογής και Συλλογών

Η διαφορά μεταξύ της συλλογής και των συλλογών είναι:

Συλλογή Συλλογές
Η συλλογή είναι μια διεπαφή. Οι συλλογές είναι μια κατηγορία.
Αντιπροσωπεύει μια ομάδα αντικειμένων ως μια ενιαία οντότητα. Ορίζει διάφορες μεθόδους χρησιμότητας για αντικείμενα συλλογής.
Η συλλογή είναι η ριζική διεπαφή του Java Πλαίσιο συλλογής. Το Collections είναι μια γενική κατηγορία χρησιμότητας.
Αυτή η διεπαφή χρησιμοποιείται για την εξαγωγή των δομών δεδομένων συλλογής. Αυτή η κλάση περιέχει στατικές μεθόδους για τον χειρισμό της δομής δεδομένων.

27) Ορίστε το LinkedHashSet στο Java Πλαίσιο συλλογής;

Το LinkedHashSet είναι μια υποκλάση της κλάσης που ονομάζεται HashSet και υλοποιεί τη διεπαφή συνόλου. Είναι μια καλά οργανωμένη έκδοση του HashSet που διατηρεί μια λίστα διπλά συνδεδεμένη σε όλα τα στοιχεία του.


28) Ποια είναι η διαφορά μεταξύ failfast και failsafe;

Αποτυχία Failsafe
Δεν επιτρέπει την τροποποίηση της συλλογής κατά την επανάληψη. Επιτρέπει την τροποποίηση της συλλογής κατά την επανάληψη.
Μπορεί να ρίξει ConcurrentModificationException Δεν μπορεί να κάνει καμία εξαίρεση.
Χρησιμοποιεί την αρχική συλλογή για να διασχίσει τα στοιχεία. Χρησιμοποιεί ένα πρωτότυπο αντίγραφο συλλογής για να διασχίσει τα στοιχεία.
Δεν απαιτείται επιπλέον μνήμη. Απαιτείται επιπλέον μνήμη.

29) Κατάλογος προβολών συλλογής μιας διεπαφής χάρτη

Οι προβολές συλλογής της διεπαφής χάρτη είναι: 1) προβολή συνόλου πλήκτρων, 2) προβολή συνόλου τιμών και 3) προβολή συνόλου εισόδου.


30) Ποια είναι τα οφέλη του Πλαισίου Συλλογής σε Java?

Τα οφέλη του Collection Framework σε Java είναι:

  • Java Το πλαίσιο συλλογής προσφέρει εξαιρετικά αποδοτικές και αποτελεσματικές δομές δεδομένων που ενισχύουν την ακρίβεια και την ταχύτητα του προγράμματος.
  • Το πρόγραμμα που αναπτύχθηκε με το Java το πλαίσιο συλλογής είναι εύκολο να διατηρηθεί.
  • Ένας προγραμματιστής μπορεί να συνδυάσει κλάσεις με άλλους τύπους που έχουν ως αποτέλεσμα την αύξηση της επαναχρησιμοποίησης του κώδικα.
  • The Java Το πλαίσιο συλλογής επιτρέπει στους προγραμματιστές να τροποποιούν τους πρωτόγονους τύπους συλλογής όπως τους αρέσει.

31) Ποιος είναι ένας καλός τρόπος για να ταξινομήσετε τα αντικείμενα της Συλλογής Java?

Ένας καλός τρόπος ταξινόμησης Java Τα αντικείμενα συλλογής χρησιμοποιούν διεπαφές Συγκρίσιμες και Συγκριτικές. Ένας προγραμματιστής μπορεί να χρησιμοποιήσει Collections.sort(), τα στοιχεία ταξινομούνται με βάση τη σειρά που αναφέρεται στο compareTo().

Όταν ένας προγραμματιστής χρησιμοποιεί Συλλογές, ταξινόμηση (Συγκριτικός), ταξινομεί τα αντικείμενα που εξαρτώνται από τη σύγκριση() της διεπαφής του Συγκριτή.


32) Εξηγήστε το Vector in Java

Το διάνυσμα είναι ίδιο με έναν πίνακα. Διαθέτει στοιχεία στα οποία μπορείτε να προσπελάσετε χρησιμοποιώντας μια τιμή ευρετηρίου. Τα διανύσματα μπορούν να περιέχουν μια μέθοδο παλαιού τύπου που δεν αποτελεί μέρος του πλαισίου συλλογής.


33) Ποια είναι η διαφορά μεταξύ Set και Map;

σετ Χάρτης
Το σετ ανήκει στο package-java.util. Ο χάρτης ανήκει στο πακέτο-java.util.
Μπορεί να επεκτείνει τη διεπαφή συλλογής. Δεν επεκτείνει τη διεπαφή συλλογής.
Δεν επιτρέπει διπλότυπες τιμές. Επιτρέπει διπλές τιμές.
Το σύνολο μπορεί να ταξινομήσει μόνο μία μηδενική τιμή. Ο χάρτης μπορεί να ταξινομήσει πολλές μηδενικές τιμές.

34) Ορίστε την τάξη λεξικού

Η τάξη του Λεξικού είναι α Java κλάση που έχει τη δυνατότητα να αποθηκεύει ζεύγη κλειδιού-τιμής.


35) Ορισμός EnumSet

Το java.util.EnumSet είναι υλοποίηση συνόλου που μπορεί να χρησιμοποιηθεί με τύπους enum. Το EnumSet που έχει όλα τα στοιχεία πρέπει να προέρχεται από έναν τύπο enum που καθορίζεται ρητά ή σιωπηρά. Δεν είναι συγχρονισμένο και επίσης δεν επιτρέπονται τα μηδενικά κλειδιά. Το EnumSet παρέχει μεθόδους όπως EnumSetof(E πρώτα, E… rest), complementOf(EnumSet s) και copyOf(Συλλογή c).


36) Ποιοι είναι οι δύο τρόποι για να αφαιρέσετε τα διπλότυπα από το ArrayList;

Δύο τρόποι για να αφαιρέσετε τα διπλότυπα από το ArrayList είναι:

  • HashSet: Ο προγραμματιστής μπορεί να χρησιμοποιήσει το HashSet για να αφαιρέσει το διπλότυπο στοιχείο από το ArrayList. Το μειονέκτημα είναι ότι δεν μπορεί να διατηρήσει τη σειρά εισαγωγής.
  • LinkedHashSet: Οι προγραμματιστές μπορούν επίσης να διατηρήσουν τη σειρά εισαγωγής χρησιμοποιώντας το LinkedHashSet αντί για το HashSet.

37) Τι είναι το IdentityHashMap;

Το IdentityHashMap είναι μια κλάση που υλοποιεί Serializable, Clonable διεπαφές, Map και επεκτείνει την κλάση AbstractMap. Έχει σχεδιαστεί για την περίπτωση όπου υπάρχει ανάγκη σημασιολογίας αναφοράς-ισότητας.


38) Τι είναι το WeakHashMap;

Το WeakHashMap είναι μια υλοποίηση του Java Χάρτης. Χρησιμοποιείται για την αποθήκευση αδύναμων παραπομπών στα κλειδιά του. Η ταξινόμηση με χρήση αυτού του χάρτη επιτρέπει τη συλλογή ενός ζεύγους κλειδιού-τιμής ως σκουπίδια. Το κλειδί του δεν αναφέρεται εκτός του WeakHashMap.


39) Ποιες είναι οι μέθοδοι για να γίνει η συλλογή ασφαλής ως προς το νήμα;

Οι μέθοδοι για να κάνετε το νήμα συλλογής ασφαλές είναι:

  • Collections.synchronizedList(list);
  • Collections.synchronizedMap(map);
  • Collections.synchronizedSet(set);

40) Εξηγήστε Μη υποστηριζόμενοOperationΕξαίρεση

ΑνυποστήρικτοςOperaΤο tionException είναι μια εξαίρεση που εφαρμόζεται σε μεθόδους που δεν υποστηρίζονται από τον πραγματικό τύπο συλλογής.

Για παράδειγμα, ο Προγραμματιστής δημιουργεί μια λίστα μόνο για ανάγνωση χρησιμοποιώντας τη μέθοδο "Collections.unmodifiableList(list)" και καλεί τη μέθοδο call(), add() ή remove(). Θα πρέπει ξεκάθαρα να ρίχνει το Μη υποστηριζόμενοOperationΕξαίρεση.


41) Ονομάστε τις κλάσεις συλλογής που δίνει πρόσβαση σε τυχαία στοιχεία στα στοιχεία του

Οι κλάσεις συλλογής που δίνουν πρόσβαση σε τυχαία στοιχεία στα στοιχεία του είναι: 1) ArrayList, 2) HashMap, 3) TreeMap και 4) Hashtable.


42) Εξηγήστε τη διαφορά μεταξύ Queue και Deque.

Ουρά Ντεκ
Ονομάζεται ουρά μονού άκρου Ονομάζεται διπλή ουρά
Τα στοιχεία στην ουρά προστίθενται ή αφαιρούνται από το ένα άκρο Τα στοιχεία στην ουρά που προστίθενται από κάθε άκρο μπορούν να προστεθούν και να αφαιρεθούν και από τα δύο άκρα
Είναι λιγότερο ευέλικτο. Είναι πιο ευέλικτο.

43) Αναφέρετε τη διεπαφή εφαρμογής List and Set

Διεπαφή λίστας υλοποίησης κλάσης: 1) ArrayList, 2) Vector και 3) LinkedList.

Διεπαφή συνόλου υλοποίησης κλάσης: 1) HashSet και 2) TreeSet.


44) Εξηγήστε το σχέδιο σχεδίασης που ακολουθεί το Iterator

Ο επαναλήπτης ακολουθεί τη λεπτομέρεια του σχεδίου του επαναλήπτη. Παρέχει στον προγραμματιστή να περιηγηθεί στις συλλογές αντικειμένων χρησιμοποιώντας μια κοινή διεπαφή χωρίς να γνωρίζει την υλοποίησή της.


45) Τι είναι το peek() της διεπαφής Queue;

Το Peek () είναι μια μέθοδος διεπαφής ουράς. Ανακτά όλα τα στοιχεία, αλλά δεν αφαιρεί την κεφαλή της ουράς. Σε περίπτωση που η ουρά είναι κενή, τότε αυτή η μέθοδος θα επιστρέψει null.


46) Τι είναι το CopyOnWriteArrayList;

Το CopyOnWriteArrayList είναι μια παραλλαγή του ArrayList στην οποία λειτουργίες όπως η προσθήκη και η ρύθμιση υλοποιούνται δημιουργώντας ένα αντίγραφο του πίνακα. Είναι ένα νήμα ασφαλές, και ως εκ τούτου δεν ρίχνει ConcurrentModificationException. Αυτό το ArrayLists επιτρέπει όλα τα στοιχεία, συμπεριλαμβανομένων των null.


47) Διαφοροποίηση μεταξύ ArrayList και LinkedList

Η διαφορά μεταξύ ArrayList και LinkedList είναι:

Λίστα Array Συνδεδεμένη λίστα
Χρησιμοποιεί έναν δυναμικό πίνακα. Χρησιμοποιεί μια διπλά συνδεδεμένη λίστα.
Το ArrayList δεν είναι προτιμότερο για χειρισμό. Το LinkedList είναι προτιμότερο για χειραγώγηση.
Το ArrayList παρέχει τυχαία πρόσβαση. Το LinkedList δεν παρέχει τυχαία πρόσβαση.
Το ArrayList αποθηκεύει μόνο αντικείμενα, επομένως χρειάζεται μικρότερο κόστος μνήμης Το LinkedList αποθηκεύει το αντικείμενο καθώς και το αντικείμενο διεύθυνσης. Ως εκ τούτου, απαιτεί περισσότερη μνήμη.

48) Εξηγήστε τις μεθόδους διεπαφής iterator

Οι μέθοδοι διεπαφής επαναληπτικού είναι:

Μέθοδος Descriptιόν
δημόσιο boolean hasNext() Επιστρέφει true στον επαναλήπτη έχει στοιχεία. διαφορετικά, επιστρέφει ψευδής.
δημόσιο αντικείμενο επόμενο() Αυτή η μέθοδος επιστρέφει το στοιχείο και μετακινεί τον δείκτη στην επόμενη τιμή.
δημόσιο κενό αφαίρεση() Αυτός ο διαλογισμός στα Java μέθοδος μπορεί να αφαιρέσει τα τελευταία στοιχεία που επιστράφηκαν από τον επαναλήπτη. Το Public void remove() χρησιμοποιείται λιγότερο.

49) Ποιες είναι οι μέθοδοι της κλάσης HashSet;

Οι μέθοδοι της κλάσης HashSet είναι:

Μέθοδοι Descriptιόν
boolean add(Object o) Αυτή η μέθοδος προσθέτει το στοιχείο αναφοράς σε αυτό το σύνολο εάν δεν υπάρχει ήδη.
Το boolean περιέχει (Αντικείμενο o): Επιστρέφει true εάν το σύνολο περιέχει το καθορισμένο στοιχείο.
void clear(): Αυτή η μέθοδος αφαιρεί τα στοιχεία συνόλου.
boolean isEmpty(): Επιστρέφει true στην περίπτωση, το σύνολο δεν έχει στοιχεία.
boolean remove(Object o): Αφαιρεί το καθορισμένο στοιχείο από το σύνολο.
αντικειμενικός κλώνος(): Αυτή η μέθοδος επιστρέφει ένα αντίγραφο της παρουσίας HashSet: τα ίδια τα στοιχεία δεν κλωνοποιούνται.
iterator iterator() Επιστρέφει έναν επαναλήπτη στα στοιχεία αυτού του συνόλου.
μέγεθος int(): Επιστρέφει τον αριθμό των διαθέσιμων στοιχείων στο σύνολο.

50) Ποιες είναι οι μέθοδοι του Java Κατηγορία TreeSet;

Οι μέθοδοι του Java Η κλάση TreeSet είναι:

Μέθοδοι Descriptιόντα
boolean addAll (Συλλογή γ) Προσθέστε όλα τα στοιχεία της καθορισμένης συλλογής σε αυτό το σύνολο.
Το boolean περιέχει (αντικείμενο o) Επιστρέφει true εάν το σύνολο περιέχει το στοιχείο αναφοράς.
boolean isEmpty () Αυτός ο διαλογισμός στα Java Η μέθοδος επιστρέφει true εάν αυτό το σύνολο δεν περιέχει στοιχεία.
boolean remove (Αντικείμενο o) Αφαιρέστε το καθορισμένο στοιχείο από το σετ.
void add(Object o) Προσθέτει το καθορισμένο στοιχείο στο σύνολο.
κενό καθαρό () Αυτός ο διαλογισμός στα Java μέθοδος αφαιρεί όλα τα στοιχεία από το σύνολο.

51) Εξηγήστε το Linked HashSet

Java Η κλάση LinkedHashSet είναι μια Συνδεδεμένη λίστα και εφαρμογή πίνακα Hash της διεπαφής Set. Περιέχει μοναδικά στοιχεία όπως ένα HashSet. Συνδεδεμένο HashSet Java παρέχει επίσης προαιρετικές λειτουργίες συνόλου που μπορούν να διατηρήσουν τη σειρά εισαγωγής.


52) Ποιες είναι οι σημαντικές μέθοδοι που χρησιμοποιούνται σε μια συνδεδεμένη λίστα;

Οι σημαντικές μέθοδοι που χρησιμοποιούνται στη συνδεδεμένη λίστα είναι:

Μέθοδος Descriptιόν
boolean add( Αντικείμενο o) Χρησιμοποιείται για την προσθήκη του καθορισμένου στοιχείου στο τέλος του διανύσματος.
Το boolean περιέχει (αντικείμενο o) Είναι μια μέθοδος που επιστρέφει true εάν αυτή η λίστα περιέχει το καθορισμένο στοιχείο.
void add (int index, Object στοιχείο) Εισάγει το στοιχείο στο καθορισμένο στοιχείο στο διάνυσμα.
void addFirst(Object o) Χρησιμοποιείται για την εισαγωγή του δεδομένου στοιχείου στην αρχή.
void addLast(Object o) Χρησιμοποιείται για την προσθήκη του δεδομένου στοιχείου στο τέλος.
Int μέγεθος() Αυτή η μέθοδος μπορεί να χρησιμοποιηθεί για την επιστροφή του συνολικού αριθμού στοιχείων σε μια λίστα.
boolean remove (Αντικείμενο o) Μπορεί να αφαιρέσει την πρώτη εμφάνιση του καθορισμένου στοιχείου από αυτήν τη λίστα.
int indexOf(Στοιχείο αντικειμένου) Αυτός ο διαλογισμός στα Java μέθοδος επιστρέφει το ευρετήριο με την πρώτη εμφάνιση του στοιχείου αναφοράς σε αυτήν τη λίστα, ή -1.
int lastIndexOf(Στοιχείο αντικειμένου) Πρόκειται για μια Java μέθοδος που επιστρέφει το ευρετήριο με την τελευταία εμφάνιση του καθορισμένου στοιχείου σε αυτήν τη λίστα ή -1.

53) Καταγράψτε διάφορες κατηγορίες διαθέσιμες σε σετ

Διάφορες κατηγορίες που διατίθενται σε σύνολα είναι: HashSet, TreeSetand και LinkedHashSet.


54) Καταγράψτε τις μεθόδους που είναι διαθέσιμες στο Java Διεπαφή ουράς

  • boolean add(object)
  • boolean προσφορά(αντικείμενο)
  • αντικείμενο αφαίρεσης()
  • δημοσκόπηση αντικειμένου()
  • στοιχείο αντικειμένου()
  • αντικείμενο peek()

55) Διαφοροποίηση μεταξύ λίστας και συνόλου.

Λιστα σετ
Μια διατεταγμένη συλλογή στοιχείων Μια αδιάβλητη συλλογή στοιχείων
Διατηρεί τη σειρά εισαγωγής Δεν διατηρεί τη σειρά εισαγωγής
Επιτρέπονται διπλότυπες τιμές Δεν επιτρέπονται διπλότυπες τιμές
Οποιοσδήποτε αριθμός μηδενικών τιμών μπορεί να αποθηκευτεί Μόνο μία μηδενική τιμή μπορεί να αποθηκευτεί
Το ListIterator μπορεί να χρησιμοποιηθεί για τη διέλευση της λίστας προς οποιαδήποτε κατεύθυνση Το ListIterator δεν μπορεί να χρησιμοποιηθεί για τη διέλευση ενός συνόλου
Περιέχει μια κλάση παλαιού τύπου που ονομάζεται vector Δεν περιέχει καμία κλάση παλαιού τύπου

Java Collections Συνέντευξη Ερωτήσεις και Απαντήσεις για 5+ χρόνια εμπειρίας

56) Εξηγήστε για κάθε βρόχο με παράδειγμα

Το For-Each Loop είναι μια άλλη μορφή βρόχου for που χρησιμοποιείται για τη διέλευση του πίνακα. Μειώνει σημαντικά τον κώδικα και δεν χρησιμοποιείται το ευρετήριο ή μάλλον ο μετρητής στον βρόχο.

Παράδειγμα για κάθε βρόχο:

class UsingForEach {
  public static void main(String[] args) {
    String[] arrData = {"Alpha", "Beta", "Gamma", "Delta", "Sigma"};
    //The conventional approach of using the for loop
    System.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 loop
    for (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 Interface

Java.util.Deque είναι Java, μια διεπαφή που επεκτείνει τη διεπαφή ουράς. Παρέχει υποστήριξη για την εισαγωγή και διαγραφή στοιχείων και στα δύο άκρα. Αυτή η ουρά ονομάζεται επίσης ουρά διπλού άκρου.


62) Εξηγήστε το Linkedashmap

Το LinkedHashMap είναι η υλοποίηση της διεπαφής χάρτη. Μπορεί επίσης να επεκτείνει την κλάση HashMap. Επομένως, όπως το HashMap, το LinkedHashMap ενεργοποιεί Java προγραμματιστές να επιτρέπουν ένα μηδενικό κλειδί και περισσότερες από μία μηδενικές τιμές.


63) Εξηγήστε τις μεθόδους αφαίρεσης στοιχείων από το ArrayList

Οι μέθοδοι για την αφαίρεση στοιχείων από το ArrayList είναι:

Μέθοδος Descriptιόν
Σαφή() Αυτή η μέθοδος αφαιρεί τα στοιχεία από το ArrayList.
αφαίρεση (int index) Αυτή η μέθοδος ArrayList μπορεί να αφαιρέσει το στοιχείο σε μια συγκεκριμένη θέση.
αφαίρεση (Αντικείμενο o) Μπορεί να αφαιρέσει την πρώτη εμφάνιση του στοιχείου αναφοράς από το ArrayList.
αφαίρεση όλων() Μπορεί να αφαιρέσει τη λίστα των στοιχείων που βρίσκονται σε μια συγκεκριμένη συλλογή.
removeIf(κατηγόρημα φίλτρο) Αυτή η μέθοδος αφαιρεί στοιχεία που ικανοποιούν την αναφορά ενός κατηγορήματος.

64) Εξηγήστε τον χάρτη. καταχώρηση στον χάρτη

Η καταχώρηση χάρτη είναι α Java διεπαφή του java.util. Διαθέτει ένθετη διεπαφή στο χάρτη. Αυτή η διεπαφή πρέπει να χαρακτηρίζεται από το όνομα της κλάσης ή της διεπαφής, στην οποία είναι μέλος. Ως εκ τούτου χαρακτηρίζεται ως Χάρτης. Είσοδος. Αντιπροσωπεύει ένα ζεύγος κλειδιών και τιμών που μπορεί να αποτελέσει στοιχείο ενός χάρτη.

Αυτή η μέθοδος επιστρέφει μια προβολή της συλλογής. Για παράδειγμα, θεωρήστε το cityMap ως χάρτη. Ο προγραμματιστής μπορεί να χρησιμοποιήσει το enterSet() για να λάβει την προβολή συνόλου του χάρτη που έχει ένα στοιχείο Map.Entry. Ο προγραμματιστής μπορεί επίσης να χρησιμοποιήσει τα getKey() και getValue() του Map.Entry για να πάρει το ζεύγος κλειδιού και τιμής του χάρτη.


65) Ποια μέθοδος χρησιμοποιείται για την ταξινόμηση ενός πίνακα σε αύξουσα σειρά;

Java Η μέθοδος πλαισίου συλλογής, η Collections.sort() χρησιμοποιείται για την ταξινόμηση ενός πίνακα με αύξουσα σειρά.


66) Πώς να μετρήσετε την απόδοση ενός ArrayList;

Η απόδοση του ArrayList μπορεί να μετρηθεί με:

  • Προσθήκη στοιχείου: Ο προγραμματιστής μπορεί να προσθέσει ένα στοιχείο στο τέλος του ArrayList χρησιμοποιώντας τη μέθοδο add(E e). Είναι Ο(1). Στο χειρότερο σενάριο, μπορεί να πάει στο O(n). Αυτό μπορεί να συμβεί εάν ο προγραμματιστής προσθέσει περισσότερα στοιχεία από τη χωρητικότητα του πίνακα.
  • Ανάκτηση στοιχείου: Ο προγραμματιστής μπορεί να έχει πρόσβαση στο ευρετήριο του πίνακα χρησιμοποιώντας το get(int index). Η απόδοση, σε αυτήν την περίπτωση, μπορεί να μετρηθεί χρησιμοποιώντας ArrayList get() είναι O(1).
  • Αφαίρεση στοιχείου: Σε περίπτωση που οι προγραμματιστές αφαιρούν στοιχείο χρησιμοποιώντας το remove(int index), τότε η απόδοση του ArrayList μπορεί να υπολογιστεί χρησιμοποιώντας την εν λόγω λειτουργία remove(int index) is O(n – index).

67) Εξηγήστε την κλάση LinkedList

Κατηγορία LinkedList σε Java υλοποιεί Deque και List χρησιμοποιώντας μια λίστα διπλά συνδεδεμένη. Υπάρχει ένας ιδιωτικός κόμβος κλάσης σε μια διπλά συνδεδεμένη λίστα που παρέχει τη δομή του. Έχει επίσης μια μεταβλητή στοιχείου για τη διατήρηση της τιμής και την αναφορά στην κλάση Node. Αυτό μπορεί να χρησιμοποιηθεί για τη σύνδεση του επόμενου και του προηγούμενου κόμβου.


68) Δώστε ένα παράδειγμα του Hashmap

Το παράδειγμα του Hashmap είναι:

import java.util.HashMap;
import java.util.Map;
public class Sample_TestMaps{
  public static void main(String[] args){
    Map<String, String> objMap = new HashMap<String, String>();
    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(): Είναι μια μέθοδος που επιστρέφει ένα σύνολο με τις καταχωρήσεις να αναφέρονται στον χάρτη. Αυτές οι εγγραφές είναι γενικά αντιρρήσεις, το οποίο έχει τύπο χάρτη. Είσοδος.
  • Σειρά 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 in Java

HashSet in Java εσωτερικά χρησιμοποιεί το HashMap για την αποθήκευση στοιχείων. Μπορεί επίσης να αποθηκεύσει μοναδικές τιμές χωρίς διπλότυπες τιμές.

In Java, Ο προγραμματιστής HashSet μπορεί να έχει τη μέθοδο add(E e) που χρειάζεται μόνο το στοιχείο για προσθήκη ως παράμετρο. Δεν δέχεται το ζεύγος κλειδιού και τιμής.


73) Εξηγήστε τη σημείωση Big-O με ένα παράδειγμα

Η σημείωση Big-O απεικονίζει την απόδοση ενός αλγορίθμου ως τον αριθμό των στοιχείων στο ArrayList. Ένας προγραμματιστής μπορεί να χρησιμοποιήσει τη σημείωση Big-O για να επιλέξει την υλοποίηση της συλλογής. Βασίζεται στην απόδοση, το χρόνο και τη μνήμη.

Για παράδειγμα, το ArrayList get(index i) είναι μια μέθοδος για την εκτέλεση μιας πράξης σταθερού χρόνου. Δεν εξαρτάται από τον συνολικό αριθμό των διαθέσιμων στοιχείων στη λίστα. Επομένως, η απόδοση στη σημειογραφία Big-O είναι O(1).


74) Εξηγήστε τις βέλτιστες πρακτικές σε Java Πλαίσιο συλλογής

Οι βέλτιστες πρακτικές σε Java Το πλαίσιο συλλογής είναι:

  • Η επιλογή του σωστού τύπου συλλογής εξαρτάται από την ανάγκη.
  • Αποφύγετε την αναδιαμόρφωση ή την αλλαγή μεγέθους υπολογίζοντας τον συνολικό αριθμό στοιχείων που θα αποθηκευτούν σε κατηγορίες συλλογής.
  • Γράψε ένα Java πρόγραμμα όσον αφορά τις διεπαφές. Αυτό θα βοηθήσει τον προγραμματιστή να αλλάξει την εφαρμογή του χωρίς κόπο στο μέλλον.
  • Ένας προγραμματιστής μπορεί να χρησιμοποιήσει το Generics για ασφάλεια τύπου.
  • Χρησιμοποιήστε αμετάβλητες κλάσεις που δίνονται από το Java Κιτ ανάπτυξης. Αποφύγετε την εφαρμογή των equals() και hashCode() για προσαρμοσμένες κλάσεις.
  • Ένας προγραμματιστής θα πρέπει να χρησιμοποιεί την κλάση βοηθητικού προγράμματος Collections για αλγόριθμους ή για λήψη συλλογών μόνο για ανάγνωση, συγχρονισμού ή κενές. Αυτό θα ενισχύσει την επαναχρησιμοποίηση κώδικα με χαμηλή συντηρησιμότητα.

75) Εξηγήστε διάφορους τύπους ουρών σε Java

Υπάρχουν τρεις τύποι ουρών Java:

  • Ουρά προτεραιότητας: Είναι ένας ειδικός τύπος ουράς όπου τα στοιχεία ταξινομούνται σύμφωνα με τη φυσική τους σειρά ή τον προσαρμοσμένο συγκριτικό τους.
  • Κυκλική ουρά: Είναι ένας τύπος ουράς στην οποία οι λειτουργίες χρήστη εκτελούνται με βάση τη μέθοδο FIFO. Το τελευταίο στοιχείο συνδέεται με την πρώτη θέση για να γίνει ένας κύκλος.
  • Double-τελειωμένη ουρά: Μια ουρά διπλού άκρου είναι ένας αφηρημένος τύπος δεδομένων που γενικεύει μια ουρά. Τα στοιχεία σε αυτήν την ουρά μπορούν να προστεθούν ή να αφαιρεθούν είτε από το κεφάλι είτε από την ουρά.

76) Ποια είναι η διαφορά μεταξύ στοίβας και ουράς;

Στοίβα Ουρά
Η αρχή λειτουργίας της στοίβας είναι LIFO. Η αρχή λειτουργίας της ουράς είναι το FIFO.
Το ένα άκρο χρησιμοποιείται για την εισαγωγή ή διαγραφή στοιχείων. Το ένα άκρο χρησιμοποιείται για την εκτέλεση εισαγωγής και ένα άλλο άκρο χρησιμοποιείται για τη διαγραφή στοιχείων.
Χρησιμοποιεί έναν δείκτη. Χρησιμοποιεί δύο δείκτες σε μια απλή ουρά.
Δεν έχει κανενός είδους παραλλαγή. Έχει παραλλαγές όπως ουρά προτεραιότητας, κυκλική ουρά, ουρά διπλού τερματισμού.
Είναι εύκολο στη χρήση. Δεν είναι εύκολο στη χρήση.

77) Ποια είναι η διαφορά μεταξύ πίνακα και στοίβας;

Η διαφορά μεταξύ πίνακα και στοίβας είναι:

Παράταξη Στοίβα
Είναι μια συλλογή στοιχείων που προσδιορίζονται από το ευρετήριο. Είναι μια λειτουργία συλλογής που χρησιμεύει ως λειτουργίες push and pop.
Έχει στοιχεία τύπων δεδομένων που είναι ίδια. Έχει στοιχεία διαφορετικών τύπων δεδομένων.
Τα στοιχεία μπορούν να αφαιρεθούν ή να προστεθούν στον πίνακα χρησιμοποιώντας τη λειτουργία τυχαίας πρόσβασης. Τα στοιχεία μπορούν να αφαιρεθούν ή να προστεθούν σε μια στοίβα χρησιμοποιώντας τη λειτουργία LIFO.

78) Ορισμός Iterator()

Το Iterator() είναι μια διεπαφή που παρέχει μεθόδους για την επανάληψη της συλλογής. Ο Iterator μπορεί να πάρει τη θέση του Enumeration in Java. Επιτρέπει στον καλούντα να αφαιρέσει στοιχεία από τη συλλογή. Η μέθοδος παρέχει έναν γενικό τρόπο διέλευσης χρησιμοποιώντας στοιχεία της συλλογής και εφαρμόζοντας το μοτίβο σχεδίασης επαναλήπτη.


79) Ποιοι είναι οι διάφοροι τρόποι επανάληψης σε μια λίστα;

Java συλλογή Ο προγραμματιστής πλαισίου μπορεί να επαναλάβει μια λίστα με δύο τρόπους: 1) Χρησιμοποιώντας τον επαναλήπτη και 2) χρησιμοποιώντας τον για κάθε βρόχος.


80) Ποια είναι τα πλεονεκτήματα της στοίβας;

Τα πλεονεκτήματα της στοίβας είναι:

  • Σας βοηθά να διαχειριστείτε τα δεδομένα σε μια μέθοδο Last In First Out (LIFO), η οποία δεν είναι δυνατή με τη λίστα και τον πίνακα Συνδεδεμένες.
  • Όταν καλείται μια συνάρτηση, οι τοπικές μεταβλητές αποθηκεύονται σε μια στοίβα και καταστρέφεται αυτόματα μόλις επιστραφεί.
  • Μια στοίβα χρησιμοποιείται όταν μια μεταβλητή δεν χρησιμοποιείται εκτός αυτής της συνάρτησης.
  • Σας επιτρέπει να ελέγχετε τον τρόπο με τον οποίο εκχωρείται και εκχωρείται η μνήμη.
  • Η στοίβα καθαρίζει αυτόματα το αντικείμενο.
  • Δεν αλλοιώνεται εύκολα
  • Μεταβλητές δεν μπορεί να αλλάξει το μέγεθος.

Αυτές οι ερωτήσεις συνέντευξης θα βοηθήσουν επίσης στο viva (προφορικά) σας