80 Java คำถามและคำตอบสัมภาษณ์ (2025)

ที่นี่มี Java คอลเลกชันคำถามสัมภาษณ์สำหรับผู้สมัครใหม่และมีประสบการณ์เพื่อให้ได้งานในฝัน

 

Java คอลเลกชัน คำถามและคำตอบสัมภาษณ์สำหรับนักศึกษาใหม่

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 กรอบการรวบรวม

รายการอาร์เรย์ เวกเตอร์
ArrayList ไม่สามารถซิงโครไนซ์ได้ เวกเตอร์สามารถซิงโครไนซ์ได้
มันไม่ใช่คลาสดั้งเดิม มันเป็นคลาสมรดก
สามารถเพิ่มขนาดได้ 50% ของขนาดของอาเรย์ สามารถเพิ่มขนาดได้โดยการเพิ่มขนาดของอาร์เรย์เป็นสองเท่า
ArrayList ไม่ปลอดภัยสำหรับเธรด Vector เป็นเธรดที่ปลอดภัย

6) ArrayList คืออะไร Java?

รายการอาร์เรย์ เป็นโครงสร้างข้อมูลที่สามารถขยายเพื่อรองรับองค์ประกอบเพิ่มเติมภายในตัวมันเอง และย่อกลับให้มีขนาดเล็กลงเมื่อองค์ประกอบถูกลบออก เป็นโครงสร้างข้อมูลที่สำคัญมากซึ่งมีประโยชน์ในการจัดการพฤติกรรมแบบไดนามิกขององค์ประกอบ


7) แยกความแตกต่างระหว่าง Iterator และ ListIterator

ความแตกต่างระหว่าง Iterator และ ListIterator คือ:

ตัววนซ้ำ ListIterator
Iterator สามารถสำรวจองค์ประกอบอาร์เรย์ในทิศทางไปข้างหน้า ListIterator สามารถสำรวจองค์ประกอบอาร์เรย์ในทิศทางย้อนกลับและทิศทางไปข้างหน้าได้
สามารถใช้ในคิว รายการ และตั้งค่าได้ สามารถใช้ในรายการได้
สามารถดำเนินการลบได้เพียงเท่านั้น สามารถเพิ่ม ลบ และตั้งค่าการดำเนินการระหว่างการเคลื่อนย้ายคอลเลกชันได้

8) Iterator และการแจงนับแตกต่างกันอย่างไร?

ความแตกต่างระหว่าง Iterator และการแจงนับ

ตัววนซ้ำ การนับ
Iterator สามารถสำรวจทั้งองค์ประกอบแบบเดิมและองค์ประกอบที่ไม่ใช่แบบเดิม การแจงนับสามารถสำรวจเฉพาะองค์ประกอบดั้งเดิมเท่านั้น
Iterator ทำงานล้มเหลวอย่างรวดเร็ว การแจงนับไม่ล้มเหลวอย่างรวดเร็ว
ตัววนซ้ำช้ามากเมื่อเปรียบเทียบกับการแจงนับ การแจงนับทำได้รวดเร็วเมื่อเปรียบเทียบกับ Iterator
Iterator สามารถดำเนินการลบได้ในขณะที่เคลื่อนที่ผ่านคอลเลกชัน การแจงนับสามารถดำเนินการสำรวจในคอลเลกชันได้เท่านั้น

9) กำหนด BlockingQueue

BlockingQueue เป็นอินเทอร์เฟซที่ใช้ใน Java ที่สามารถขยายคิวได้ โดยรองรับการทำงานพร้อมกันในคิวต่างๆ เช่น การดึงข้อมูล การแทรก การลบ เป็นต้น

คิวรอให้ไม่ว่างเปล่าในขณะที่ดึงข้อมูลองค์ประกอบใดๆ BlockingQueue ไม่ควรมีองค์ประกอบที่เป็นโมฆะ การใช้งานคิวนี้เป็นแบบปลอดภัยสำหรับเธรด

ไวยากรณ์ของ BlockingQueue คือ:

public interface BlockingQueue<E> extends Queue <E>

10) อธิบายวิธีการแทนที่เท่ากับ ()

วิธีการเท่ากับใช้เพื่อตรวจสอบความคล้ายคลึงกันระหว่างวัตถุสองชิ้น ในกรณีที่โปรแกรมเมอร์ต้องการตรวจสอบวัตถุตามคุณสมบัติ จะต้องเขียนทับวัตถุนั้น


11) ความแตกต่างระหว่าง Comparable และ Comparator คืออะไร?

ความแตกต่างระหว่าง Comparable และ Comparator คือ:

เทียบเคียง เปรียบเทียบ
Comparable ให้วิธีการเปรียบเทียบ To() เพื่อจัดเรียงองค์ประกอบต่างๆ Java. เครื่องมือเปรียบเทียบจัดเตรียมวิธีการเปรียบเทียบ () เพื่อจัดเรียงองค์ประกอบต่างๆ Java.
อินเทอร์เฟซที่เปรียบเทียบมีอยู่ในแพ็คเกจ java.lang อินเทอร์เฟซตัวเปรียบเทียบมีอยู่ใน java ยูทิลิตี้แพ็คเกจ
ตรรกะของการเรียงลำดับจะต้องอยู่ในคลาสเดียวกันกับวัตถุที่คุณจะเรียงลำดับ ตรรกะของการเรียงลำดับควรอยู่ในคลาสที่แยกจากกันเพื่อเขียนการเรียงลำดับที่แตกต่างกันตามคุณลักษณะที่แตกต่างกันของวัตถุ
คลาสที่มีวัตถุที่คุณต้องการเรียงลำดับต้องใช้อินเทอร์เฟซที่เทียบเคียงได้ คลาสซึ่งมีอ็อบเจ็กต์ที่คุณต้องการเรียงลำดับ ไม่จำเป็นต้องใช้อินเทอร์เฟซตัวเปรียบเทียบ
มันมีลำดับการเรียงลำดับเดี่ยว มีลำดับการเรียงลำดับหลายแบบ
วิธีนี้สามารถจัดเรียงข้อมูลตามลำดับการเรียงลำดับตามธรรมชาติ วิธีนี้จะเรียงลำดับข้อมูลตามลำดับการจัดเรียงที่กำหนดเอง
มันส่งผลต่อคลาสเดิม กล่าวคือ ชั้นเรียนที่แท้จริงมีการเปลี่ยนแปลง ไม่ส่งผลกระทบต่อคลาสดั้งเดิม กล่าวคือ คลาสจริงจะไม่ถูกเปลี่ยนแปลง
ใช้งานบ่อยครั้งใน API ตามปฏิทิน คลาส Wrapper วันที่ และสตริง มันถูกนำไปใช้เพื่อเรียงลำดับอินสแตนซ์ของคลาสบุคคลที่สาม
คลาส wrapper และคลาส String ทั้งหมดใช้อินเทอร์เฟซที่เทียบเคียงได้ คลาส Comparator ที่ใช้งานเพียงคลาสเดียวคือ Collator และ RuleBasedColator

12) อธิบายเท่ากับ() ด้วยตัวอย่าง

Equals() ตรวจสอบว่าวัตถุ number เท่ากับวัตถุซึ่งถูกส่งผ่านเป็นอาร์กิวเมนต์หรือไม่

ไวยากรณ์ของเมธอดเท่ากับ () คือ:

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 ที่ยอมรับวัตถุรายการ ไวยากรณ์ของเมธอด asList() คือ:

Arrays.asList(item)

Java โปรแกรมเมอร์สามารถแปลง ArrayList เป็นวัตถุรายการโดยใช้ไวยากรณ์:

List_object.toArray(new String[List_object.size()])

15) ยกตัวอย่าง ArrayList

ตัวอย่างของ Reverse 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 ภาษาการเขียนโปรแกรมไม่ได้จัดให้มีการใช้งานอินเทอร์เฟซดังกล่าวโดยตรง

  • ตั้ง: Set คือคอลเลกชันที่ไม่มีองค์ประกอบที่ซ้ำกัน มันใช้ hashtable สำหรับการจัดเก็บองค์ประกอบ
  • รายการ: รายการเป็นคอลเลกชันที่มีลำดับที่สามารถมีองค์ประกอบที่ซ้ำกันได้ ช่วยให้นักพัฒนาเข้าถึงองค์ประกอบใดๆ ก็ได้จากกล่องจดหมาย รายการเป็นเหมือนอาร์เรย์ที่มีความยาวแบบไดนามิก
  • แผนที่: มันเป็นวัตถุที่จับคู่คีย์กับค่า ไม่สามารถมีคีย์ที่ซ้ำกัน แต่ละคีย์สามารถแมปกับค่าได้อย่างน้อยหนึ่งค่า

18) มีคุณสมบัติอะไรบ้าง Java แฮชแมป?

คุณสมบัติของ Java แฮชแมป คือ:

  • ค่าสามารถเก็บไว้ในแผนที่โดยการสร้างคู่คีย์-ค่า ค่าสามารถดึงข้อมูลได้โดยใช้คีย์โดยส่งผ่านไปยังวิธีที่ถูกต้อง
  • หากไม่มีองค์ประกอบอยู่ในแผนที่ มันจะส่ง 'NoSuchElementException'
  • HashMap จะเก็บเฉพาะการอ้างอิงวัตถุเท่านั้น ดังนั้นจึงไม่สามารถใช้ชนิดข้อมูลดั้งเดิมเช่น double หรือ int ได้ ให้ใช้คลาส wrapper (เช่น 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) อธิบาย Linked List ที่สนับสนุนโดย Java

รายการลิงก์สองประเภทที่สนับสนุนโดย Java คือ:

  • รายการที่เชื่อมโยงเดี่ยว: รายการลิงค์เดี่ยวเป็นโครงสร้างข้อมูลประเภทหนึ่ง ในรายการเชื่อมโยงเดี่ยว แต่ละโหนดในรายการจะจัดเก็บเนื้อหาของโหนดและการอ้างอิงหรือตัวชี้ไปยังโหนดถัดไปในรายการ ไม่เก็บข้อมูลอ้างอิงหรือตัวชี้ไปยังโหนดก่อนหน้า
  • รายการที่เชื่อมโยงทวีคูณ: รายการที่เชื่อมโยงแบบทวีคูณเป็นรายการเชื่อมโยงประเภทพิเศษที่การข้ามผ่านองค์ประกอบข้อมูลสามารถทำได้ทั้งสองทิศทาง สิ่งนี้เกิดขึ้นได้โดยการมีสองลิงก์ในทุกโหนด ลิงก์หนึ่งลิงก์ไปยังโหนดถัดไปและอีกลิงก์หนึ่งเชื่อมต่อกับโหนดก่อนหน้า

23) อธิบายวิธีการที่ได้รับจากอินเทอร์เฟซคิว?

วิธีการของ Java อินเทอร์เฟซคิวคือ:

วิธี Descriptไอออน
เพิ่มบูลีน (วัตถุ) แทรกองค์ประกอบที่ระบุลงในคิว มันจะคืนค่าเป็นจริงในกรณีที่ทำสำเร็จ
ข้อเสนอบูลีน (วัตถุ) วิธีการนี้จะใช้ในการแทรกองค์ประกอบลงในคิว
ลบวัตถุ() มันดึงและลบส่วนหัวของคิว
แบบสำรวจวัตถุ () - จะดึงข้อมูลและลบส่วนหัวของคิวหรือส่งคืนค่าว่างในกรณีที่ว่างเปล่า
แบบสำรวจวัตถุ () จะดึงข้อมูลและลบส่วนหัวของคิวหรือส่งคืนค่าว่างในกรณีที่ว่างเปล่า
องค์ประกอบวัตถุ () ดึงข้อมูลจากคิว แต่ไม่ได้ลบส่วนหัวออก
วัตถุแอบดู () ดึงข้อมูลจากคิวแต่ไม่ได้ลบส่วนหัวออก หรือในกรณีที่คิวว่างเปล่าคิวจะดึงข้อมูลว่าง

24) กล่าวถึงวิธีการที่จัดทำโดยคลาส Stack

วิธีการสำคัญที่คลาส Stack มอบให้คือ:

  • ดัน(): ดันรายการเข้าไปในสแต็ค
  • ว่างเปล่า (): เมธอดนี้จะค้นหาว่าสแต็กว่างเปล่าหรือไม่
  • โผล่ (): แจกันดอกไม้โรแมนติกนี้ Java วิธีการรวบรวมกรอบการลบวัตถุออกจากสแต็ก
  • ค้นหา (): วิธีนี้ค้นหารายการในสแต็ก
  • มอง (): แจกันดอกไม้โรแมนติกนี้ Java วิธีการดูวัตถุสแต็กโดยไม่ต้องลบออก

25) กำหนด EmptySet() ในไฟล์ Java กรอบการรวบรวม

เมธอด EmptySet() ที่ส่งคืนชุดว่างที่ไม่เปลี่ยนรูปทุกครั้งที่โปรแกรมเมอร์พยายามลบองค์ประกอบว่าง ชุดที่ส่งคืนโดย EmptySet() สามารถทำให้เป็นอนุกรมได้ ไวยากรณ์ของวิธีนี้คือ:

รอบชิงชนะเลิศแบบคงที่สาธารณะ ชุด ชุดว่างเปล่า()


26) แยกความแตกต่างระหว่างคอลเลกชันและคอลเลกชัน

ความแตกต่างระหว่างคอลเลกชันและคอลเลกชันคือ:

ชุด คอลเลคชั่น
คอลเลกชันเป็นอินเทอร์เฟซ คอลเลกชันเป็นชั้นเรียน
มันแสดงถึงกลุ่มของวัตถุที่เป็นเอนทิตีเดียว มันกำหนดวิธีการอรรถประโยชน์ต่างๆ สำหรับวัตถุคอลเลกชัน
คอลเลกชันเป็นส่วนต่อประสานรูทของ Java กรอบการรวบรวม คอลเลกชันเป็นคลาสยูทิลิตี้ทั่วไป
อินเทอร์เฟซนี้ใช้เพื่อรับโครงสร้างข้อมูลคอลเลกชัน คลาสนี้มีวิธีคงที่เพื่อจัดการโครงสร้างข้อมูล

27) กำหนด LinkedHashSet ในไฟล์ Java กรอบการรวบรวม?

LinkedHashSet เป็นคลาสย่อยของคลาสที่เรียกว่า HashSet และใช้อินเทอร์เฟซชุด เป็น HashSet เวอร์ชันที่ได้รับการจัดลำดับอย่างดี ซึ่งจะรักษารายการที่มีการเชื่อมโยงแบบทวีคูณในทุกองค์ประกอบ


28) Failfast และ Failsafe แตกต่างกันอย่างไร?

ล้มเหลว ป้องกันความผิดพลาด
ไม่อนุญาตให้แก้ไขคอลเลกชันในขณะที่วนซ้ำ อนุญาตให้แก้ไขคอลเลกชันในขณะที่วนซ้ำ
มันสามารถส่ง ConcurrentModificationException ได้ มันไม่สามารถยกเว้นได้
ใช้คอลเลกชันดั้งเดิมเพื่อสำรวจองค์ประกอบต่างๆ ใช้สำเนาคอลเลกชันต้นฉบับเพื่อสำรวจองค์ประกอบต่างๆ
ไม่จำเป็นต้องมีหน่วยความจำเพิ่มเติม มีความต้องการหน่วยความจำเพิ่มเติม

29) แสดงรายการมุมมองคอลเลกชันของอินเทอร์เฟซแผนที่

มุมมองคอลเลกชันของอินเทอร์เฟซแผนที่คือ: 1) มุมมองชุดคีย์ 2) มุมมองชุดค่า และ 3) มุมมองชุดรายการ


30) Collection Framework มีประโยชน์อย่างไร Java?

ประโยชน์ของ Collection Framework ใน Java คือ:

  • Java กรอบการรวบรวมนำเสนอโครงสร้างข้อมูลที่มีประสิทธิภาพสูงและประสิทธิผลซึ่งช่วยเพิ่มความแม่นยำและความเร็วของโปรแกรม
  • โปรแกรมที่พัฒนาร่วมกับ Java กรอบการรวบรวมนั้นง่ายต่อการบำรุงรักษา
  • นักพัฒนาสามารถผสมผสานคลาสกับประเภทอื่น ๆ ที่ส่งผลให้โค้ดสามารถนำมาใช้ซ้ำได้มากขึ้น
  • เค้ก Java กรอบงานการรวบรวมช่วยให้โปรแกรมเมอร์สามารถปรับเปลี่ยนประเภทคอลเลกชันดั้งเดิมได้ตามที่พวกเขาต้องการ

31) วิธีที่ดีในการจัดเรียงออบเจ็กต์ Collection คืออะไร Java?

วิธีที่ดีในการจัดเรียง Java วัตถุคอลเลกชันใช้อินเทอร์เฟซที่เปรียบเทียบได้และตัวเปรียบเทียบ นักพัฒนาสามารถใช้ Collections.sort() ได้ โดยองค์ประกอบต่างๆ จะถูกจัดเรียงตามลำดับที่กล่าวถึงใน comparisonTo()

เมื่อนักพัฒนาใช้คอลเลกชัน การเรียงลำดับ (ตัวเปรียบเทียบ) จะเรียงลำดับออบเจ็กต์โดยขึ้นอยู่กับการเปรียบเทียบ() ของอินเทอร์เฟซตัวเปรียบเทียบ


32) อธิบายเวกเตอร์ใน Java

เวกเตอร์เหมือนกับอาร์เรย์ มีส่วนประกอบที่สามารถเข้าถึงได้โดยใช้ค่าดัชนี เวกเตอร์สามารถมีวิธีดั้งเดิมที่ไม่ได้เป็นส่วนหนึ่งของกรอบงานการรวบรวม


33) Set และ Map ต่างกันอย่างไร?

ชุด แผนที่
ชุดเป็นของ package-java.util แผนที่เป็นของ package- java.util
มันสามารถขยายอินเทอร์เฟซการรวบรวม มันไม่ได้ขยายอินเทอร์เฟซการรวบรวม
ไม่อนุญาตให้มีค่าที่ซ้ำกัน อนุญาตให้มีค่าซ้ำกัน
ชุดสามารถเรียงลำดับค่าว่างได้เพียงค่าเดียวเท่านั้น แผนที่สามารถเรียงลำดับค่า Null ได้หลายค่า

34) กำหนดคลาสพจนานุกรม

ชั้นเรียนพจนานุกรมคือ ก Java คลาสที่มีความสามารถในการจัดเก็บคู่คีย์-ค่า


35) กำหนด EnumSet

java.util.EnumSet คือการใช้งาน Set ที่สามารถใช้กับประเภท enum ได้ โดยที่ EnumSet ที่มีองค์ประกอบทั้งหมดต้องมาจากประเภท enum หนึ่งประเภทที่ระบุอย่างชัดเจนหรือโดยปริยาย ซึ่งจะไม่ซิงโครไนซ์ และไม่อนุญาตให้ใช้คีย์ null EnumSet มีวิธีการต่างๆ เช่น EnumSetof(E first, E… rest), complementOf(EnumSet s) และ copyOf(Collection c)


36) สองวิธีในการลบรายการที่ซ้ำกันออกจาก ArrayList คืออะไร?

สองวิธีในการลบรายการที่ซ้ำกันออกจาก ArrayList คือ:

  • ชุดแฮช: นักพัฒนาสามารถใช้ HashSet เพื่อลบองค์ประกอบที่ซ้ำกันออกจาก ArrayList ข้อเสียเปรียบคือไม่สามารถรักษาลำดับการแทรกได้
  • ชุดแฮชที่เชื่อมโยง: นักพัฒนายังสามารถรักษาลำดับการแทรกได้โดยใช้ LinkedHashSet แทน HashSet

37) IdentityHashMap คืออะไร

IdentityHashMap เป็นคลาสที่ใช้ Serializable, Clonable interfaces, Map และขยายคลาส AbstractMap มันถูกออกแบบมาสำหรับกรณีที่มีความต้องการซีแมนทิกส์การอ้างอิงและความเท่าเทียมกัน


38) WeakHashMap คืออะไร

WeakHashMap เป็นการดำเนินการของ Java แผนที่. มันถูกใช้เพื่อจัดเก็บการอ้างอิงที่อ่อนแอไปยังคีย์ของมัน การเรียงลำดับโดยใช้แมปนี้ทำให้คู่คีย์-ค่าถูกรวบรวมเป็นขยะ คีย์ของมันไม่ได้ถูกอ้างอิงภายนอก WeakHashMap


39) วิธีการทำให้คอลเลกชันเธรดปลอดภัยมีอะไรบ้าง?

วิธีการทำให้เธรดการรวบรวมปลอดภัยคือ:

  • Collections.synchronizedList(รายการ)
  • Collections.synchronizedMap(แผนที่);
  • Collections.synchronizedSet(ชุด)

40) อธิบายที่ไม่รองรับOperationException

ได้รับการสนับสนุนOperationException เป็นข้อยกเว้นที่เกิดขึ้นกับวิธีการที่ไม่ได้รับการสนับสนุนโดยประเภทคอลเลกชันจริง

ตัวอย่างเช่น นักพัฒนากำลังสร้างรายการแบบอ่านอย่างเดียวโดยใช้ “Collections.unmodifiableList(list)” และเรียกเมธอด call(), add() หรือ Remove() มันควรจะโยน Unsupported อย่างชัดเจนOperationException


41) ตั้งชื่อคลาสคอลเลกชันที่ให้การเข้าถึงองค์ประกอบแบบสุ่มไปยังองค์ประกอบต่างๆ

คลาสคอลเลกชันที่ให้การเข้าถึงองค์ประกอบแบบสุ่มไปยังองค์ประกอบต่างๆ ได้แก่: 1) ArrayList, 2) HashMap, 3) TreeMap และ 4) Hashtable


42) อธิบายความแตกต่างระหว่าง Queue และ Deque

คิว เดเก
เรียกว่าคิวปลายเดียว เรียกว่าคิวสองหัว
องค์ประกอบในคิวถูกเพิ่มหรือลบออกจากปลายด้านหนึ่ง องค์ประกอบในคิวที่ถูกเพิ่มจากปลายด้านใดด้านหนึ่งสามารถเพิ่มและลบออกจากปลายทั้งสองด้านได้
มันมีความหลากหลายน้อยกว่า มันมีความหลากหลายมากขึ้น

43) กล่าวถึงการใช้งาน List และ Set interface

อินเทอร์เฟซรายการการใช้งานคลาส: 1) ArrayList, 2) เวกเตอร์ และ 3) LinkedList

คลาสที่ใช้อินเทอร์เฟซ Set: 1) HashSet และ 2) TreeSet


44) อธิบายรูปแบบการออกแบบตามด้วย Iterator

ตัวทำซ้ำจะทำตามรายละเอียดของรูปแบบการออกแบบตัวทำซ้ำ โดยช่วยให้ผู้พัฒนาสามารถนำทางผ่านคอลเล็กชันของอ็อบเจ็กต์โดยใช้อินเทอร์เฟซทั่วไปโดยไม่ต้องรู้ถึงการใช้งาน


45) peek() ของอินเทอร์เฟซ Queue คืออะไร?

Peek () เป็นวิธีการของอินเทอร์เฟซคิว จะดึงข้อมูลองค์ประกอบทั้งหมดแต่ไม่ได้ลบส่วนหัวของคิว ในกรณีที่ Queue ว่างเปล่า เมธอดนี้จะคืนค่า null


46) CopyOnWriteArrayList คืออะไร

CopyOnWriteArrayList คือตัวแปรของ ArrayList ที่ใช้การดำเนินการเช่น add และ set โดยการสร้างสำเนาของอาร์เรย์ CopyOnWriteArrayList เป็นเธรดเซฟ ดังนั้นจึงไม่มี ConcurrentModificationException ArrayLists นี้อนุญาตให้ใช้องค์ประกอบทั้งหมด รวมถึง null


47) แยกความแตกต่างระหว่าง ArrayList และ LinkedList

ความแตกต่างระหว่าง ArrayList และ LinkedList คือ:

รายการอาร์เรย์ รายการที่เชื่อมโยง
มันใช้อาร์เรย์แบบไดนามิก มันใช้รายการเชื่อมโยงสองครั้ง
ArrayList ไม่เหมาะสำหรับการจัดการ LinkedList เหมาะกว่าสำหรับการจัดการ
ArrayList ให้การเข้าถึงแบบสุ่ม LinkedList ไม่ได้ให้การเข้าถึงแบบสุ่ม
ArrayList เก็บเฉพาะวัตถุจึงใช้หน่วยความจำน้อยลง LinkedList เก็บวัตถุเช่นเดียวกับวัตถุที่อยู่ ดังนั้นจึงต้องใช้หน่วยความจำมากกว่า

48) อธิบายวิธีการของอินเทอร์เฟซตัววนซ้ำ

วิธีการของอินเทอร์เฟซตัววนซ้ำคือ:

วิธี Descriptไอออน
บูลีนสาธารณะ hasNext() คืนค่าเป็นจริงในตัววนซ้ำที่มีองค์ประกอบ มิฉะนั้นคืนค่าเป็นเท็จ
วัตถุสาธารณะถัดไป () วิธีการนี้จะส่งคืนองค์ประกอบและย้ายตัวชี้ไปยังค่าถัดไป
โมฆะสาธารณะลบ () แจกันดอกไม้โรแมนติกนี้ Java วิธีการนี้สามารถลบองค์ประกอบสุดท้ายที่ส่งคืนโดยตัววนซ้ำได้ มีการใช้ Public void remove() น้อยกว่า

49) คลาส HashSet มีวิธีการอะไรบ้าง?

วิธีการของคลาส HashSet คือ:

วิธีการ Descriptไอออน
เพิ่มบูลีน (Object o) เมธอดนี้จะเพิ่มองค์ประกอบการกล่าวถึงให้กับชุดนี้ หากยังไม่มีอยู่
บูลีนประกอบด้วย (Object o): มันจะคืนค่าเป็นจริงหากชุดมีองค์ประกอบที่ระบุ
เป็นโมฆะชัดเจน (): วิธีนี้จะลบองค์ประกอบชุด
บูลีน isEmpty(): มันจะคืนค่าเป็นจริงในกรณีที่เซตไม่มีองค์ประกอบ
ลบบูลีน (Object o): มันจะลบองค์ประกอบที่ระบุออกจากชุด
โคลนวัตถุ (): เมธอดนี้ส่งคืนสำเนาของอินสแตนซ์ HashSet: องค์ประกอบต่างๆ จะไม่ถูกโคลน
ตัววนซ้ำ ตัววนซ้ำ() มันจะส่งคืนตัววนซ้ำเหนือองค์ประกอบในชุดนี้
ขนาด int(): ส่งคืนจำนวนองค์ประกอบที่มีอยู่ในชุด

50) มีวิธีการอะไรบ้าง Java คลาส TreeSet?

วิธีการของ Java คลาส TreeSet คือ:

วิธีการ Descriptไอออน
บูลีน addAll (คอลเลกชัน c) เพิ่มองค์ประกอบทั้งหมดในคอลเลกชันที่ระบุลงในชุดนี้
บูลีนมี (Object o) คืนค่าเป็นจริงหากชุดประกอบด้วยองค์ประกอบที่กล่าวถึง
บูลีน isEmpty() แจกันดอกไม้โรแมนติกนี้ Java วิธีการคืนค่าเป็นจริงหากชุดนี้ไม่มีองค์ประกอบ
ลบบูลีน (Object o) ลบองค์ประกอบที่ระบุออกจากชุด
เป็นโมฆะเพิ่ม (วัตถุ o) มันเพิ่มองค์ประกอบที่ระบุให้กับชุด
เป็นโมฆะชัดเจน() แจกันดอกไม้โรแมนติกนี้ Java วิธีการลบองค์ประกอบทั้งหมดออกจากชุด

51) อธิบาย HashSet ที่เชื่อมโยง

Java คลาส LinkedHashSet เป็นรายการที่เชื่อมโยงและการใช้งานตารางแฮชของอินเทอร์เฟซการตั้งค่า มันมีองค์ประกอบเฉพาะเช่นเดียวกับ HashSet แฮชเซ็ตที่เชื่อมโยงเข้า Java ยังมีชุดการดำเนินการเสริมที่สามารถรักษาลำดับการแทรกได้


52) วิธีการสำคัญที่ใช้ใน Linked List คืออะไร?

วิธีการสำคัญที่ใช้ในลิงค์ลิสต์คือ:

วิธี Descriptไอออน
เพิ่มบูลีน (วัตถุ o) มันถูกใช้เพื่อผนวกองค์ประกอบที่ระบุที่ส่วนท้ายของเวกเตอร์
บูลีนมี (Object o) เป็นวิธีการที่คืนค่าจริงหากรายการนี้ประกอบด้วยองค์ประกอบที่ระบุ
เพิ่มเป็นโมฆะ (ดัชนี int องค์ประกอบวัตถุ) แทรกองค์ประกอบที่องค์ประกอบที่ระบุในเวกเตอร์
เป็นโมฆะ addFirst (วัตถุ o) มันถูกใช้เพื่อแทรกองค์ประกอบที่กำหนดที่จุดเริ่มต้น
เป็นโมฆะ addLast (วัตถุ o) มันถูกใช้เพื่อผนวกองค์ประกอบที่กำหนดต่อท้าย
ขนาดภายใน() วิธีการนี้สามารถใช้เพื่อส่งกลับจำนวนองค์ประกอบทั้งหมดในรายการ
ลบบูลีน (Object o) สามารถลบการเกิดขึ้นครั้งแรกขององค์ประกอบที่ระบุออกจากรายการนี้ได้
int indexOf (องค์ประกอบของวัตถุ) แจกันดอกไม้โรแมนติกนี้ Java วิธีการส่งกลับดัชนีที่มีการเกิดขึ้นครั้งแรกขององค์ประกอบที่กล่าวถึงในรายการนี้หรือ -1
int LastIndexOf (องค์ประกอบของวัตถุ) มันเป็น Java วิธีการส่งคืนดัชนีพร้อมกับการปรากฏครั้งสุดท้ายขององค์ประกอบที่ระบุในรายการนี้หรือ -1

53) แสดงรายการคลาสต่างๆ ที่มีอยู่ในชุด

คลาสต่างๆ ที่มีอยู่ในชุด ได้แก่: HashSet, TreeSetand และ LinkedHashSet


54) รายการวิธีการที่มีอยู่ใน Java อินเตอร์เฟซคิว

  • เพิ่มบูลีน (วัตถุ)
  • ข้อเสนอบูลีน (วัตถุ)
  • ลบวัตถุ ()
  • แบบสำรวจวัตถุ ()
  • องค์ประกอบวัตถุ ()
  • วัตถุแอบดู ()

55) แยกความแตกต่างระหว่างรายการและชุด

รายการ ชุด
การรวบรวมองค์ประกอบที่ได้รับคำสั่ง การรวบรวมองค์ประกอบที่ไม่เรียงลำดับ
รักษาลำดับการแทรก ไม่รักษาลำดับการแทรก
อนุญาตให้มีค่าซ้ำกัน ไม่อนุญาตให้ใช้ค่าที่ซ้ำกัน
สามารถเก็บค่าว่างจำนวนเท่าใดก็ได้ สามารถเก็บค่า Null ได้เพียงค่าเดียวเท่านั้น
ListIterator สามารถใช้เพื่อสำรวจรายการไปในทิศทางใดก็ได้ ListIterator ไม่สามารถใช้เพื่อสำรวจชุดได้
มีคลาสดั้งเดิมที่เรียกว่าเวกเตอร์ ไม่มีคลาสดั้งเดิมใดๆ

Java คอลเลกชันคำถามและคำตอบสัมภาษณ์สำหรับประสบการณ์ 5 ปีขึ้นไป

56) อธิบายแต่ละวงด้วยตัวอย่าง

For-Each Loop เป็นอีกรูปแบบหนึ่งของ for loop ที่ใช้ในการสำรวจอาร์เรย์ จะลดโค้ดลงอย่างมาก และไม่มีการใช้ดัชนีหรือตัวนับในลูป

ตัวอย่างสำหรับแต่ละวง:

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 ถูกใช้โดยการใช้งาน List เพื่อบ่งชี้ว่ารองรับอย่างรวดเร็ว


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 นักพัฒนาซอฟต์แวร์อนุญาตให้ใช้คีย์ Null หนึ่งคีย์และค่า Null มากกว่าหนึ่งค่า


63) อธิบายวิธีการลบองค์ประกอบออกจาก ArrayList

วิธีการลบองค์ประกอบออกจาก ArrayList คือ:

วิธี Descriptไอออน
ชัดเจน() วิธีการนี้จะลบองค์ประกอบออกจาก ArrayList
ลบ (ดัชนี int) วิธีการ ArrayList นี้สามารถลบองค์ประกอบในตำแหน่งเฉพาะได้
ลบ (วัตถุ o) สามารถลบการเกิดขึ้นครั้งแรกขององค์ประกอบการกล่าวถึงออกจาก ArrayList
ลบทั้งหมด() สามารถลบรายการองค์ประกอบที่อยู่ในคอลเลกชันเฉพาะได้
RemoveIf(ภาคแสดง กรอง) วิธีนี้จะลบองค์ประกอบที่เป็นไปตามการกล่าวถึงภาคแสดง

64) อธิบายแผนที่ รายการในแผนที่

Map.entry คือ Java อินเทอร์เฟซของ java.util มีอินเทอร์เฟซที่ซ้อนกันใน Map อินเทอร์เฟซนี้ต้องมีคุณสมบัติตามชื่อของคลาสหรืออินเทอร์เฟซที่เป็นสมาชิก ดังนั้นจึงมีคุณสมบัติเป็น Map รายการ อินเทอร์เฟซนี้แสดงถึงคู่คีย์และค่าที่สามารถสร้างองค์ประกอบของ Map ได้

วิธีการนี้จะส่งกลับมุมมองของคอลเลกชัน ตัวอย่างเช่น พิจารณา cityMap เป็นแผนที่ นักพัฒนาสามารถใช้ entrySet() เพื่อรับมุมมองชุดของแผนที่ที่มีองค์ประกอบ Map.Entry โปรแกรมเมอร์ยังสามารถใช้ getKey() และ getValue() ของ Map.Entry เพื่อรับคู่ของคีย์และค่าของแผนที่


65) วิธีใดใช้ในการเรียงลำดับอาร์เรย์จากน้อยไปหามาก?

Java วิธีการรวบรวมกรอบงาน Collections.sort() ใช้เพื่อเรียงลำดับอาร์เรย์จากน้อยไปหามาก


66) จะวัดประสิทธิภาพของ ArrayList ได้อย่างไร?

ประสิทธิภาพของ ArrayList สามารถวัดได้โดย:

  • การเพิ่มองค์ประกอบ: นักพัฒนาสามารถเพิ่มองค์ประกอบที่ส่วนท้ายของ ArrayList โดยใช้เมธอด add(E e) มันคือ O(1) ในกรณีที่เลวร้ายที่สุด อาจไปที่ O(n) กรณีนี้อาจเกิดขึ้นได้หากนักพัฒนาเพิ่มองค์ประกอบมากกว่าความจุของอาเรย์
  • การดึงองค์ประกอบ: นักพัฒนาสามารถเข้าถึงดัชนีอาร์เรย์โดยใช้ get (ดัชนี int) ประสิทธิภาพในกรณีนี้สามารถวัดได้โดยใช้ ArrayList get() คือ O(1)
  • การลบองค์ประกอบ: ในกรณีที่นักพัฒนาทำการลบองค์ประกอบโดยใช้ remove(int index) ก็สามารถคำนวณประสิทธิภาพของ ArrayList ได้โดยใช้การดำเนินการ remove(int index) ดังกล่าว ซึ่งก็คือวิธี 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) จะวนซ้ำแผนที่ได้อย่างไร?

นักพัฒนาซอฟต์แวร์ไม่สามารถวนซ้ำแผนที่ได้โดยตรง แต่อินเทอร์เฟซนี้มีสองวิธีที่ให้ชุดมุมมองของแผนที่ วิธีการเหล่านี้คือ:

  • ชุด >ชุดรายการ(): เป็นวิธีการที่ส่งคืนชุดที่มีการกล่าวถึงรายการในแผนที่ โดยทั่วไปรายการเหล่านี้จะถูกคัดค้านซึ่งมีประเภทแผนที่ รายการ.
  • ชุด ชุดคีย์(): แจกันดอกไม้โรแมนติกนี้ Java วิธีการส่งกลับชุดที่มีคีย์แผนที่

70) อธิบาย Treemap ใน Java

TreeMap เป็นคลาสที่ใช้อินเทอร์เฟซแผนที่ LinkedHashMap และ HashMap นอกจากนี้ยังสามารถใช้อินเทอร์เฟซ NavigableMap และสามารถขยายคลาส AbstractMap ได้


71) Hashmap และ Hashtable แตกต่างกันอย่างไร?

แฮชแมป แฮชเทเบิล
มันไม่ได้ซิงโครไนซ์กัน มันได้รับการซิงโครไนซ์แล้ว
แฮชแมป อนุญาตให้หนึ่งคีย์เป็นค่าว่าง HashTable ไม่อนุญาตให้มีค่าว่าง
Iterator ใช้เพื่อสำรวจ HashMap Iterator หรือ Enumerator ใช้สำหรับการสำรวจ HashTable
สามารถใช้กับทั้ง HashTable, HashMap และทำงานล้มเหลวอย่างรวดเร็ว สามารถใช้กับ HashTable ได้และปลอดภัยเมื่อเกิดข้อผิดพลาด
HashMap ทำงานได้เร็วกว่า HashTable Hashtable นั้นไม่ได้เร็วกว่ามากเมื่อเทียบกับ HashMap

72) อธิบายการทำงานภายในของ HashSet ใน Java

แฮชเข้ามา 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 ชุดพัฒนา หลีกเลี่ยงการใช้เท่ากับ() และ hashCode() สำหรับคลาสที่กำหนดเอง
  • โปรแกรมเมอร์ควรใช้คลาสยูทิลิตี้ Collections สำหรับอัลกอริทึมหรือเพื่อรับคอลเล็กชันแบบอ่านอย่างเดียว แบบซิงโครไนซ์ หรือแบบว่างเปล่า ซึ่งจะช่วยเพิ่มความสามารถในการนำโค้ดกลับมาใช้ใหม่พร้อมความสามารถในการบำรุงรักษาที่ต่ำ

75) อธิบายคิวประเภทต่างๆ Java

คิวมีสามประเภท Java:

  • คิวลำดับความสำคัญ: เป็นคิวประเภทพิเศษที่องค์ประกอบต่างๆ จะถูกจัดเรียงตามลำดับตามธรรมชาติหรือตัวเปรียบเทียบที่กำหนดเอง
  • คิวแบบวงกลม: เป็นคิวประเภทหนึ่งที่ผู้ใช้ดำเนินการตามวิธี FIFO โดยองค์ประกอบสุดท้ายจะเชื่อมต่อกับตำแหน่งแรกเพื่อสร้างวงกลม
  • Double- สิ้นสุดคิว: คิวสองปลายเป็นประเภทข้อมูลนามธรรมที่สรุปคิว องค์ประกอบในคิวนี้สามารถเพิ่มหรือลบออกจากส่วนหัวหรือส่วนท้ายได้

76) อะไรคือความแตกต่างระหว่างสแต็กและคิว?

กอง คิว
หลักการทำงานของสแต็กคือ LIFO หลักการทำงานของคิวคือ FIFO
ปลายด้านหนึ่งใช้ในการแทรกหรือลบองค์ประกอบ ปลายด้านหนึ่งใช้สำหรับการแทรก และปลายอีกด้านใช้สำหรับการลบองค์ประกอบ
มันใช้หนึ่งพอยน์เตอร์ ใช้พอยน์เตอร์สองตัวในคิวแบบธรรมดา
ไม่มีตัวแปรใด ๆ มันมีรูปแบบต่างๆ เช่น คิวลำดับความสำคัญ, คิวแบบวงกลม, คิวที่สิ้นสุดเป็นสองเท่า
มันใช้งานง่าย มันไม่ง่ายที่จะใช้

77) อะไรคือความแตกต่างระหว่างอาร์เรย์และสแต็ก?

ความแตกต่างระหว่างอาร์เรย์และสแต็กคือ:

แถว กอง
มันคือชุดขององค์ประกอบที่ระบุโดยดัชนี เป็นการดำเนินการเก็บรวบรวมข้อมูลที่ทำหน้าที่เป็นการดำเนินการผลักและป๊อป
มีองค์ประกอบประเภทข้อมูลเหมือนกัน มีองค์ประกอบประเภทข้อมูลที่แตกต่างกัน
สามารถลบหรือเพิ่มองค์ประกอบเข้าในอาร์เรย์ได้โดยใช้การดำเนินการเข้าถึงแบบสุ่ม สามารถลบออกหรือเพิ่มองค์ประกอบเข้าไปในสแต็กได้โดยใช้การดำเนินการ LIFO

78) กำหนดตัววนซ้ำ ()

Iterator() เป็นอินเทอร์เฟซที่ให้วิธีการวนซ้ำ Collection Iterator สามารถใช้แทน Enumeration ได้ Javaวิธีนี้ช่วยให้ผู้เรียกสามารถลบองค์ประกอบออกจากคอลเลกชันได้ โดยวิธีการนี้ให้วิธีการทั่วไปสำหรับการสืบค้นโดยใช้องค์ประกอบของคอลเลกชันและการนำรูปแบบการออกแบบตัววนซ้ำไปใช้


79) วิธีต่างๆ ในการวนซ้ำรายการมีอะไรบ้าง?

Java โปรแกรมเมอร์ collection Framework สามารถวนซ้ำรายการได้สองวิธี: 1) การใช้ตัววนซ้ำ และ 2) การใช้มันสำหรับแต่ละรายการ ห่วง.


80) สแต็คมีข้อดีอย่างไร?

ข้อดีของสแต็คคือ:

  • ช่วยให้คุณจัดการข้อมูลด้วยวิธีเข้าก่อนออกก่อน (LIFO) ซึ่งไม่สามารถทำได้กับรายการที่เชื่อมโยงและอาร์เรย์
  • เมื่อมีการเรียกใช้ฟังก์ชัน ตัวแปรในพื้นที่จะถูกเก็บไว้ในสแต็ก และจะถูกทำลายโดยอัตโนมัติเมื่อส่งคืนมา
  • สแต็กถูกใช้เมื่อไม่ได้ใช้ตัวแปรภายนอกฟังก์ชันนั้น
  • ช่วยให้คุณสามารถควบคุมวิธีการจัดสรรและจัดสรรหน่วยความจำใหม่ได้
  • Stack จะล้างวัตถุโดยอัตโนมัติ
  • ไม่เสียหายง่าย
  • ตัวแปร ไม่สามารถปรับขนาดได้

คำถามสัมภาษณ์เหล่านี้จะช่วยในวีว่าของคุณ (วาจา)