80 câu hỏi phỏng vấn tuyển tập Java hàng đầu & Câu trả lời

Anonim

Dưới đây là các câu hỏi phỏng vấn Java Collections dành cho các ứng viên mới và có kinh nghiệm để có được công việc mơ ước của họ.

1) Framework trong Java là gì?

Khung công tác là một kiến ​​trúc phổ biến và được tạo sẵn có chứa một tập hợp các lớp và giao diện.

2) Khung sưu tập trong Java là gì?

Collection Framework là một nhóm các lớp và giao diện được sử dụng để lưu trữ và quản lý các đối tượng. Nó cung cấp nhiều lớp khác nhau như Vector, ArrayList, HashSet, Stack, v.v. Khung công tác Java Collection cũng có thể được sử dụng cho các giao diện như Queue, Set, List, v.v.

3) Giải thích Lớp Bộ sưu tập

java.util.Collections là một lớp bao gồm các phương thức tĩnh hoạt động trên các tập hợp. Nó chứa các thuật toán đa hình để hoạt động trên các tập hợp, "trình bao bọc". Lớp này chứa các phương thức cho các thuật toán, như sắp xếp nhị phân, tìm kiếm, xáo trộn, v.v.

4) Mã băm () là gì?

Mã băm () là một phương thức trả về một mã băm số nguyên.

5) Phân biệt giữa ArrayList và Vector trong khung sưu tập Java.

Lập danh sách Véc tơ
ArrayList không thể được đồng bộ hóa. Vector có thể được đồng bộ hóa.
Nó không phải là một lớp kế thừa. Nó là một lớp kế thừa.
Nó có thể tăng kích thước của nó lên 50% kích thước của mảng. Nó có thể tăng kích thước của nó bằng cách tăng gấp đôi kích thước của mảng.
ArrayList không an toàn cho luồng. Vector là một chuỗi an toàn.

6) ArrayList trong Java là gì?

ArrayList là một cấu trúc dữ liệu có thể được kéo dài để chứa các phần tử bổ sung bên trong chính nó và thu nhỏ trở lại kích thước nhỏ hơn khi các phần tử bị xóa. Nó là một cấu trúc dữ liệu rất quan trọng hữu ích trong việc xử lý các hành vi động của các phần tử.

7) Phân biệt giữa Iterator và ListIterator

Sự khác biệt giữa Iterator và ListIterator là:

Trình lặp lại ListIterator
Trình lặp lại có thể duyệt qua các phần tử của mảng theo hướng về phía trước. ListIterator có thể duyệt các phần tử của mảng theo hướng lùi cũng như tiến.
Nó có thể được sử dụng trong Hàng đợi, Danh sách và Tập hợp. Nó có thể được sử dụng trong Danh sách.
Nó chỉ có thể thực hiện thao tác gỡ bỏ. Nó có thể thực hiện thao tác thêm, bớt và thiết lập trong khi duyệt qua bộ sưu tập.

8) Sự khác biệt giữa Iterator và Enumeration là gì?

Sự khác biệt giữa Iterator và Enumeration

Trình lặp lại Sự liệt kê
Iterator có thể duyệt qua cả các phần tử thừa cũng như các phần tử không kế thừa. Phép liệt kê chỉ có thể duyệt qua các phần tử kế thừa.
Trình lặp lại không nhanh. Việc liệt kê không phải là không nhanh chóng.
Trình lặp lại rất chậm so với Enumeration. Phép liệt kê nhanh hơn so với Iterator.
Iterator có thể thực hiện thao tác loại bỏ trong khi duyệt qua bộ sưu tập. Enumeration chỉ có thể thực hiện thao tác duyệt trên tập hợp.

9) Xác định BlockingQueue

BlockingQueue là một giao diện được sử dụng trong Java có thể mở rộng Hàng đợi. Nó cung cấp đồng thời trong các hoạt động hàng đợi khác nhau như truy xuất, chèn, xóa, v.v.

Hàng đợi trở thành không trống tại thời điểm truy xuất bất kỳ phần tử nào. BlockingQueue không được chứa các phần tử rỗng. Việc triển khai Hàng đợi này là an toàn theo chuỗi.

Cú pháp của BlockingQueue là:

public interface BlockingQueue extends Queue  

10) Giải thích ghi đè phương thức equals ()

Phương thức bằng được sử dụng để kiểm tra sự giống nhau giữa hai đối tượng. Trong trường hợp nếu người lập trình muốn kiểm tra một đối tượng dựa trên thuộc tính thì nó cần được ghi đè.

11) Sự khác biệt giữa So sánh và So sánh là gì?

Sự khác biệt giữa So sánh và So sánh là:

Có thể so sánh được Máy so sánh
So sánh cung cấp phương thức CompareTo () để sắp xếp các phần tử trong Java. Comparator cung cấp phương thức so sánh () để sắp xếp các phần tử trong Java.
Giao diện có thể so sánh được có trong gói java.lang. Giao diện so sánh có trong java. gói sử dụng.
Logic của việc sắp xếp phải nằm trong cùng một lớp có đối tượng mà bạn sẽ sắp xếp. Logic của việc sắp xếp nên nằm trong một lớp riêng biệt để viết các cách sắp xếp khác nhau dựa trên các thuộc tính khác nhau của các đối tượng.
Lớp có các đối tượng bạn muốn sắp xếp phải triển khai giao diện có thể so sánh được. Lớp, có các đối tượng bạn muốn sắp xếp, không cần triển khai giao diện so sánh.
Nó cung cấp các trình tự sắp xếp đơn lẻ. Nó cung cấp nhiều trình tự sắp xếp.
Phương pháp này có thể sắp xếp dữ liệu theo thứ tự sắp xếp tự nhiên. Phương pháp này sắp xếp dữ liệu theo thứ tự sắp xếp tùy chỉnh.
Nó ảnh hưởng đến lớp ban đầu. tức là, lớp thực tế bị thay đổi. Nó không ảnh hưởng đến lớp ban đầu, tức là, lớp thực tế không bị thay đổi.
Được triển khai thường xuyên trong API theo Lịch, các lớp Wrapper, Ngày và Chuỗi. Nó được triển khai để sắp xếp các trường hợp của các lớp bên thứ ba.
Tất cả các lớp trình bao bọc và lớp Chuỗi thực hiện giao diện có thể so sánh được. Các lớp được triển khai duy nhất của Comparator là Collator và RuleBasedColator.

12) Giải thích bằng () với ví dụ

Equals () xác minh xem đối tượng number có bằng đối tượng được truyền dưới dạng đối số hay không.

Cú pháp của phương thức equals () là:

public boolean equals(Object o) 

Phương thức này nhận hai tham số 1) đối tượng bất kỳ, 2) giá trị trả về. Nó trả về true nếu đối số được truyền vào không phải là giá trị rỗng và là một đối tượng thuộc kiểu tương tự có cùng giá trị số.

Thí dụ:

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) Liệt kê các lợi ích của việc thu thập chung chung

Các lợi ích của việc sử dụng bộ sưu tập chung là:

  • Nếu các lập trình viên đang sử dụng lớp chung, họ không yêu cầu đánh máy.
  • Nó là loại an toàn và có thể được kiểm tra tại thời điểm biên dịch.
  • Nó cung cấp sự ổn định của mã bằng cách phát hiện lỗi tại thời điểm biên dịch.

14) Giải thích phương pháp chuyển đổi ArrayList thành Array và Array thành ArrayList

Người lập trình có thể chuyển đổi một Array thành ArrayList bằng cách sử dụng phương thức asList () của lớp Arrays. Nó là một phương thức tĩnh của lớp Mảng chấp nhận đối tượng List. Cú pháp của phương thức asList () là:

Arrays.asList(item) 

Lập trình viên Java có thể chuyển đổi ArrayList thành đối tượng List bằng cú pháp:

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

15) Cho ví dụ về ArrayList

Ví dụ về ArrayList đảo ngược là:

import java.util.ArrayList;class Test_ArrayList {public static void main(String[] args) {//Creating a generic ArrayListArrayList arlTest = 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) Cho ví dụ để sắp xếp một mảng theo thứ tự tăng dần

Ví dụ về sắp xếp một mảng theo thứ tự giảm dần là:

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) Giải thích các giao diện cơ bản của khung bộ sưu tập Java

Khung bộ sưu tập Java là một gốc của hệ thống phân cấp bộ sưu tập. Nó đại diện cho một nhóm các đối tượng như các phần tử của nó. Ngôn ngữ lập trình Java không cung cấp việc triển khai trực tiếp giao diện như vậy.

  • Tập hợp: Tập hợp là tập hợp không có phần tử trùng lặp. Nó sử dụng bảng băm để lưu trữ các phần tử.
  • Danh sách: Danh sách là một tập hợp có thứ tự có thể chứa các phần tử trùng lặp. Nó cho phép các nhà phát triển truy cập bất kỳ phần tử nào từ hộp thư đến của nó. Danh sách giống như một mảng có độ dài động.
  • MAP: Nó là một đối tượng ánh xạ các khóa đến các giá trị. Nó không thể chứa các khóa trùng lặp. Mỗi khóa có thể được ánh xạ tới ít nhất một giá trị.

18) Các tính năng của Java Hashmap là gì?

Các tính năng của Java Hashmap là:

  • Các giá trị có thể được lưu trữ trong bản đồ bằng cách tạo thành một cặp khóa-giá trị. Giá trị có thể được truy xuất bằng cách sử dụng khóa bằng cách chuyển nó đến phương thức chính xác.
  • Nếu không có phần tử nào tồn tại trong Bản đồ, nó sẽ ném ra một 'NoSuchElementException'.
  • HashMap chỉ lưu trữ các tham chiếu đối tượng. Đó là lý do tại sao không thể sử dụng các kiểu dữ liệu nguyên thủy như double hoặc int. Thay vào đó, hãy sử dụng lớp trình bao bọc (như Số nguyên hoặc Đôi).

19) Ngăn xếp là gì?

Ngăn xếp là một vùng đặc biệt của bộ nhớ máy tính lưu trữ các biến tạm thời do một hàm tạo ra. Trong ngăn xếp, các biến được khai báo, lưu trữ và khởi tạo trong thời gian chạy.

20) Danh sách liên kết là gì?

Danh sách liên kết là một cấu trúc dữ liệu có thể lưu trữ một tập hợp các mục. Nói cách khác, danh sách liên kết có thể được sử dụng để lưu trữ một số đối tượng cùng loại. Mỗi đơn vị hoặc phần tử của danh sách được gọi là một nút. Một nút trong danh sách được Liên kết có dữ liệu của nó và địa chỉ của nút tiếp theo. Nó giống như một sợi dây chuyền. Danh sách liên kết được sử dụng để tạo đồ thị và cây.

21) Cho ví dụ về ArrayList

Ví dụ về ArrayList là:

import java.util.ArrayList;class Test_ArrayList {public static void main(String[] args) {//Creating a generic ArrayListArrayList arlTest = 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) Giải thích danh sách liên kết được hỗ trợ bởi Java

Hai loại danh sách liên kết được Java hỗ trợ là:

  • Singly Linked list: Singly Linked list là một kiểu cấu trúc dữ liệu. Trong danh sách được liên kết đơn lẻ, mỗi nút trong danh sách lưu trữ nội dung của nút và một tham chiếu hoặc con trỏ đến nút tiếp theo trong danh sách. Nó không lưu trữ bất kỳ tham chiếu hoặc con trỏ nào đến nút trước đó.
  • Danh sách được liên kết kép: Danh sách được liên kết kép là một loại danh sách được liên kết đặc biệt, trong đó việc truyền qua các phần tử dữ liệu có thể được thực hiện theo cả hai hướng. Điều này có thể thực hiện được bằng cách có hai liên kết trong mỗi nút, một liên kết với nút tiếp theo và một liên kết khác kết nối với nút trước đó.

23) Giải thích các phương thức được cung cấp bởi giao diện Hàng đợi?

Các phương thức của giao diện Java Queue là:

phương pháp Sự miêu tả
boolean add (object) Chèn phần tử đã chỉ định vào Hàng đợi. Nó trả về true trong trường hợp nó thành công.
phiếu mua hàng boolean (đối tượng) Phương thức này được sử dụng để chèn phần tử vào Hàng đợi.
Đối tượng remove () Nó truy xuất và loại bỏ đầu hàng đợi.
Cuộc thăm dò đối tượng () (): Nó truy xuất và loại bỏ đầu hàng đợi hoặc trả về null trong trường hợp nó trống.
Cuộc thăm dò đối tượng () Nó truy xuất và loại bỏ đầu hàng đợi hoặc trả về null trong trường hợp nó trống.
Phần tử đối tượng () Lấy dữ liệu từ Hàng đợi, nhưng không xóa phần đầu của nó.
Đối tượng peek () Lấy dữ liệu từ Hàng đợi nhưng không loại bỏ phần đầu của nó, hoặc trong trường hợp, nếu Hàng đợi là Hàng trống, nó sẽ lấy null.

24) Đề cập đến các phương thức được cung cấp bởi lớp Stack

Các phương thức quan trọng được cung cấp bởi lớp Stack là:

  • push (): Đẩy mục vào ngăn xếp.
  • void (): Phương thức này cho biết ngăn xếp có trống hay không.
  • pop (): Phương thức khung tập hợp Java này loại bỏ đối tượng khỏi ngăn xếp.
  • search (): Phương thức này tìm kiếm các mục trong ngăn xếp.
  • peek (): Phương thức Java này xem xét đối tượng ngăn xếp mà không cần loại bỏ nó.

25) Định nghĩa voidSet () trong khung công tác bộ sưu tập Java

Phương thức voidSet () trả về tập bất biến trống bất cứ khi nào lập trình viên cố gắng loại bỏ các phần tử null. Tập hợp được trả về bởi voidSet () có thể tuần tự hóa. Cú pháp của phương thức này là:

public static final Set blankSet ()

26) Phân biệt giữa Bộ sưu tập và Bộ sưu tập

Sự khác biệt giữa Bộ sưu tập và Bộ sưu tập là:

Bộ sưu tập Bộ sưu tập
Bộ sưu tập là một giao diện. Bộ sưu tập là một lớp học.
Nó đại diện cho một nhóm đối tượng như một thực thể duy nhất. Nó định nghĩa các phương thức tiện ích khác nhau cho các đối tượng thu thập.
Bộ sưu tập là giao diện gốc của khung Bộ sưu tập Java. Bộ sưu tập là một lớp tiện ích chung.
Giao diện này được sử dụng để lấy cấu trúc dữ liệu thu thập. Lớp này chứa các phương thức tĩnh để thao tác với cấu trúc dữ liệu.

27) Định nghĩa LinkedHashSet trong khung Java Collection?

LinkedHashSet là một lớp con của lớp được gọi là HashSet và thực hiện giao diện thiết lập. Đây là một phiên bản được sắp xếp hợp lý của HashSet duy trì một Danh sách được liên kết kép trên tất cả các phần tử của nó.

28) Sự khác biệt giữa failfast và failsafe là gì?

Thất bại Failsafe
Nó không cho phép sửa đổi bộ sưu tập trong khi lặp lại. Nó cho phép sửa đổi bộ sưu tập trong khi lặp lại.
Nó có thể ném ConcurrentModificationException Nó không thể ném bất kỳ ngoại lệ nào.
Nó sử dụng bộ sưu tập ban đầu để duyệt qua các phần tử. Nó sử dụng một bản sao bộ sưu tập gốc để duyệt qua các phần tử.
Không có yêu cầu về bộ nhớ bổ sung. Có một yêu cầu của bộ nhớ bổ sung.

29) Liệt kê các chế độ xem bộ sưu tập của giao diện bản đồ

Các chế độ xem bộ sưu tập của giao diện bản đồ là: 1) chế độ xem tập hợp khóa, 2) chế độ xem tập hợp giá trị và 3) chế độ xem tập hợp mục nhập.

30) Các lợi ích của Khung thu thập trong Java là gì?

Các lợi ích của Khung thu thập trong Java là:

  • Khung thu thập Java cung cấp các cấu trúc dữ liệu hiệu quả và hiệu quả cao nhằm nâng cao độ chính xác và tốc độ của chương trình.
  • Chương trình được phát triển với khuôn khổ bộ sưu tập Java rất dễ bảo trì.
  • Một nhà phát triển có thể trộn các lớp với các kiểu khác để tăng khả năng tái sử dụng của mã.
  • Khung tập hợp Java cho phép các lập trình viên sửa đổi các kiểu tập hợp nguyên thủy theo cách họ muốn.

31) Cách tốt để sắp xếp các đối tượng Collection trong Java là gì?

Một cách tốt để sắp xếp các đối tượng bộ sưu tập Java là sử dụng giao diện So sánh và So sánh. Một nhà phát triển có thể sử dụng Collections.sort (), các phần tử được sắp xếp dựa trên thứ tự được đề cập trong CompareTo ().

Khi một nhà phát triển sử dụng Collections, sắp xếp (Comparator), nó sắp xếp các đối tượng phụ thuộc vào so sánh () của giao diện Comparator.

32) Giải thích vectơ trong Java

Vectơ giống như một mảng. Nó có các thành phần có thể được truy cập bằng giá trị chỉ mục. Vectơ có thể chứa một phương thức kế thừa không phải là một phần của khung thu thập.

33) Sự khác biệt giữa Set và Map là gì?

Bộ Bản đồ
Bộ thuộc về package-java.util. Bản đồ thuộc về package- java.util.
Nó có thể mở rộng giao diện bộ sưu tập. Nó không mở rộng giao diện bộ sưu tập.
Nó không cho phép các giá trị trùng lặp. Nó cho phép các giá trị trùng lặp.
Bộ chỉ có thể sắp xếp một giá trị rỗng. Bản đồ có thể sắp xếp nhiều giá trị rỗng.

34) Xác định lớp từ điển

Lớp Dictionary là một lớp Java có khả năng lưu trữ các cặp khóa-giá trị.

35) Xác định EnumSet

java.util.EnumSet là cài đặt thực thi có thể được sử dụng với các kiểu enum. EnumSet có tất cả các phần tử phải đến từ một kiểu enum được chỉ định rõ ràng hoặc ngầm định. Nó không được đồng bộ hóa và các khóa rỗng cũng không được phép. EnumSet cung cấp các phương thức như EnumSetof (E trước, E

… Phần còn lại), bổ sung (EnumSet), và copyOf (Bộ sưu tập c).

36) Hai cách để loại bỏ các bản sao khỏi ArrayList là gì?

Hai cách để xóa các bản sao khỏi ArrayList là:

  • HashSet: Nhà phát triển có thể sử dụng HashSet để xóa phần tử trùng lặp khỏi ArrayList. Hạn chế là nó không thể bảo toàn thứ tự chèn.
  • LinkedHashSet: Các nhà phát triển cũng có thể duy trì thứ tự chèn bằng cách sử dụng LinkedHashSet thay vì HashSet.

37) Bản đồ IdentityHashMap là gì?

IdentityHashMap là một lớp triển khai các giao diện Serializable, Clonable, Bản đồ và mở rộng lớp AbstractMap. Nó được thiết kế cho trường hợp cần có ngữ nghĩa bình đẳng tham chiếu.

38) WeakHashMap là gì?

WeakHashMap là một triển khai của Bản đồ Java. Nó được sử dụng để lưu trữ các tham chiếu yếu đến các khóa của nó. Việc sắp xếp bằng cách sử dụng Bản đồ này cho phép một cặp khóa-giá trị được thu thập dưới dạng rác. Khóa của nó không được tham chiếu bên ngoài WeakHashMap.

39) Các phương pháp để làm cho chuỗi thu thập được an toàn?

Các phương pháp để làm cho chuỗi thu thập an toàn là:

  • Collections.synchronizedList (danh sách);
  • Collections.synchronizedMap (bản đồ);
  • Collections.synchronizedSet (set);

40) Giải thích ngoại lệ không được hỗ trợ

UnsupportedOperationException là một ngoại lệ whch được đưa vào các phương thức không được hỗ trợ bởi loại tập hợp thực tế.

Ví dụ: Nhà phát triển đang tạo danh sách chỉ đọc bằng cách sử dụng "Collections.unmodifiableList (list)" và gọi phương thức call (), add () hoặc remove (). Nó rõ ràng sẽ ném UnsupportedOperationException.

41) Đặt tên cho các lớp tập hợp cung cấp quyền truy cập phần tử ngẫu nhiên vào các phần tử của nó

Các lớp tập hợp cung cấp quyền truy cập phần tử ngẫu nhiên vào các phần tử của nó là: 1) ArrayList, 2) HashMap, 3) TreeMap và 4) Hashtable.

42) Giải thích sự khác biệt giữa Queue và Deque.

Xếp hàng Deque
Nó được gọi là Hàng đợi một đầu Nó được gọi là Hàng đợi kết thúc kép
Các phần tử trong Hàng đợi được thêm vào hoặc xóa khỏi một đầu Các phần tử trong Hàng đợi được thêm vào từ một trong hai đầu có thể được thêm vào và xóa khỏi cả hai đầu
Nó kém linh hoạt hơn. Nó là linh hoạt hơn.

43) Đề cập đến giao diện Danh sách và Bộ triển khai

Giao diện danh sách triển khai lớp: 1) ArrayList, 2) Vector, và 3) LinkedList.

Thực hiện lớp Giao diện thiết lập: 1) HashSet và 2) TreeSet.

44) Giải thích mẫu thiết kế theo sau bởi Iterator

Trình lặp tuân theo chi tiết của mẫu thiết kế trình lặp. Nó cung cấp cho nhà phát triển điều hướng qua các bộ sưu tập đối tượng bằng giao diện chung mà không cần biết cách triển khai của nó.

45) Giao diện hàng đợi peek () là gì?

Peek () là một phương thức của giao diện hàng đợi. Nó truy xuất tất cả các phần tử nhưng không loại bỏ đầu hàng đợi. Trong trường hợp nếu Hàng đợi trống, thì phương thức này sẽ trả về null.

46) CopyOnWriteArrayList là gì?

CopyOnWriteArrayList là một biến thể của ArrayList trong đó các hoạt động như thêm và đặt được thực hiện bằng cách tạo một bản sao của mảng. Nó là một chuỗi an toàn và do đó nó không ném ConcurrentModificationException. ArrayLists này cho phép tất cả các phần tử, bao gồm cả null.

47) Phân biệt giữa ArrayList và LinkedList

Sự khác biệt giữa ArrayList và LinkedList là:

Lập danh sách LinkedList
Nó sử dụng một mảng động. Nó sử dụng một danh sách được liên kết kép.
ArrayList không thích hợp cho thao tác. LinkedList thích hợp hơn để thao túng.
ArrayList cung cấp quyền truy cập ngẫu nhiên. LinkedList không cung cấp quyền truy cập ngẫu nhiên.
ArrayList s chỉ lưu trữ các đối tượng do đó nó chiếm ít bộ nhớ hơn LinkedList lưu trữ đối tượng cũng như đối tượng địa chỉ; do đó, nó chiếm nhiều bộ nhớ hơn.

48) Giải thích các phương thức của giao diện trình lặp

Các phương thức của giao diện trình lặp là:

phương pháp Sự miêu tả
public boolean hasNext () Nó trả về true trong trình lặp có các phần tử; nếu không, nó trả về false.
public Object next () Phương thức này trả về phần tử và di chuyển con trỏ đến giá trị tiếp theo.
public void remove () Phương thức Java này có thể loại bỏ các phần tử cuối cùng được trả về bởi trình vòng lặp. Công khai void remove () ít được sử dụng hơn.

49) Các phương thức của lớp HashSet là gì?

Các phương thức của lớp HashSet là:

Phương pháp Sự miêu tả
boolean add (Đối tượng o) Phương thức này thêm phần tử đề cập vào tập hợp này nếu nó chưa có mặt.
boolean chứa (Đối tượng o): Nó trả về true nếu tập hợp chứa phần tử được chỉ định.
void clear (): Phương pháp này loại bỏ các phần tử tập hợp.
boolean isEmpty (): Nó trả về true trong trường hợp, tập hợp không có phần tử.
boolean remove (Đối tượng o): Nó loại bỏ phần tử được chỉ định khỏi tập hợp.
đối tượng clone (): Phương thức này trả về một bản sao của cá thể HashSet: bản thân các phần tử không được sao chép.
trình lặp iterator () Nó trả về một trình lặp trên các phần tử trong tập hợp này.
int size (): Nó trả về số phần tử có sẵn trong tập hợp.

50) Các phương thức của lớp Java TreeSet là gì?

Các phương thức của lớp Java TreeSet là:

Phương pháp Mô tả
boolean addAll (Bộ sưu tập c) Thêm tất cả các phần tử trong bộ sưu tập được chỉ định vào tập hợp này.
boolean chứa (Đối tượng o) Trả về true nếu tập hợp chứa phần tử đề cập.
boolean isEmpty () Phương thức Java này trả về true nếu tập hợp này không chứa phần tử nào.
boolean remove (Đối tượng o) Xóa phần tử được chỉ định khỏi tập hợp.
void add (Object o) Nó thêm phần tử được chỉ định vào tập hợp.
void clear () Phương thức Java này loại bỏ tất cả các phần tử khỏi tập hợp.

51) Giải thích HashSet được liên kết

Lớp Java LinkedHashSet là một danh sách được Liên kết và bảng Hash triển khai của giao diện Set. Nó chứa các phần tử duy nhất giống như một HashSet. HashSet được liên kết trong Java cũng cung cấp các hoạt động tập hợp tùy chọn có thể duy trì thứ tự chèn.

52) Các phương pháp quan trọng được sử dụng trong danh sách liên kết là gì?

Các phương pháp quan trọng được sử dụng trong danh sách liên kết là:

phương pháp Sự miêu tả
boolean add (Đối tượng o) Nó được sử dụng để nối phần tử được chỉ định vào cuối vectơ.
boolean chứa (Đối tượng o) Đây là một phương thức trả về true nếu danh sách này chứa phần tử được chỉ định.
void add (int index, Object element) Chèn phần tử vào phần tử được chỉ định trong vectơ.
void addFirst (Đối tượng o) Nó được sử dụng để chèn phần tử đã cho vào đầu.
void addLast (Đối tượng o) Nó được sử dụng để nối phần tử đã cho vào cuối.
Kích thước int () Phương thức này có thể được sử dụng để trả về tổng số phần tử trong một danh sách.
boolean remove (Đối tượng o) Nó có thể xóa lần xuất hiện đầu tiên của phần tử được chỉ định khỏi danh sách này.
int indexOf (Phần tử đối tượng) Phương thức Java này trả về chỉ mục có lần xuất hiện đầu tiên của phần tử được đề cập trong danh sách này, hoặc -1.
int lastIndexOf (Phần tử đối tượng) Nó là một phương thức Java trả về chỉ mục với lần xuất hiện cuối cùng của phần tử được chỉ định trong danh sách này, hoặc -1.

53) Liệt kê các lớp khác nhau có sẵn trong bộ

Các lớp khác nhau có sẵn trong bộ là: HashSet, TreeSetand và LinkedHashSet.

54) Liệt kê các phương thức có sẵn trong giao diện Hàng đợi Java

  • boolean add (object)
  • phiếu mua hàng boolean (đối tượng)
  • đối tượng remove ()
  • thăm dò đối tượng ()
  • phần tử đối tượng ()
  • đối tượng peek ()

55) Phân biệt giữa Danh sách và Tập hợp.

Danh sách Bộ
Một tập hợp các phần tử có thứ tự Một tập hợp các phần tử không có thứ tự
Giữ nguyên thứ tự chèn Không duy trì thứ tự chèn
Các giá trị trùng lặp được phép Các giá trị trùng lặp không được phép
Bất kỳ số lượng giá trị null nào đều có thể được lưu trữ Chỉ một giá trị rỗng có thể được lưu trữ
ListIterator có thể được sử dụng để duyệt qua Danh sách theo bất kỳ hướng nào ListIterator không thể được sử dụng để duyệt một Tập hợp
Chứa một lớp kế thừa được gọi là vectơ Không chứa bất kỳ lớp kế thừa nào

56) Giải thích cho mỗi vòng lặp với ví dụ

Vòng lặp For-Each là một dạng khác của vòng lặp for được sử dụng để duyệt qua mảng. Nó làm giảm mã đáng kể và không sử dụng chỉ mục hay đúng hơn là bộ đếm trong vòng lặp.

Hoàn thành cho mỗi vòng lặp:

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) Giải thích toán tử kim cương

Toán tử Diamond cho phép trình biên dịch thu thập các đối số kiểu của lớp chung. Trong Java SE, nhà phát triển có thể thay thế hàm tạo được tham số hóa bằng một bộ tham số rỗng (<>) được gọi là toán tử kim cương.

58) Giải thích giao diện truy cập ngẫu nhiên

Giao diện RandomAccess được sử dụng bởi các triển khai Danh sách để chỉ ra rằng chúng đang hỗ trợ nhanh.

59) Đặt tên cho các lớp tập hợp thực hiện giao diện truy cập ngẫu nhiên

Gói Java.util có các lớp có thể triển khai giao diện truy cập ngẫu nhiên là: CopyOnWriteArrayList, Stack, ArrayList và Vector.

60) Làm thế nào để tham gia nhiều ArrayLists?

Danh sách cung cấp một phương thức addall () nhiều ArrayList trong Java.

Ví dụ, hãy xem xét hai danh sách 1) areaList và 2) secondAreaList. Một nhà phát triển có thể tham gia cùng họ bằng addall () như:

areaList.addAll (secondAreaList);

61) Giải thích giao diện deque

Java.util.Deque là Java, một giao diện mở rộng giao diện Queue. Nó cung cấp hỗ trợ cho việc chèn và xóa các phần tử ở cả hai phần cuối. Hàng đợi này còn được gọi là hàng đợi kết thúc kép.

62) Giải thích Linkedhashmap

LinkedHashMap là việc triển khai giao diện Bản đồ. Nó cũng có thể mở rộng lớp HashMap. Do đó, giống như HashMap, LinkedHashMap cho phép các nhà phát triển Java cho phép một khóa null và nhiều hơn một giá trị null.

63) Giải thích các phương pháp xóa các phần tử khỏi ArrayList

Các phương pháp để xóa các phần tử khỏi ArrayList là:

phương pháp Sự miêu tả
thông thoáng() Phương thức này loại bỏ các phần tử khỏi ArrayList.
loại bỏ (chỉ mục int) Phương thức ArrayList này có thể xóa phần tử tại một vị trí cụ thể.
loại bỏ (Đối tượng o) Nó có thể xóa lần xuất hiện đầu tiên của phần tử được đề cập khỏi ArrayList.
Xoá bỏ hết() Nó có thể xóa danh sách các phần tử nằm trong một bộ sưu tập cụ thể.
removeIf (Predicate filter) Phương thức này loại bỏ các phần tử thỏa mãn việc đề cập đến một vị từ.

64) Giải thích bản đồ. mục nhập trong bản đồ

Map.entry là một giao diện Java của java.util. Nó có một giao diện lồng nhau trong Bản đồ. Giao diện này phải đủ điều kiện theo tên của lớp hoặc giao diện mà nó là thành viên. Do đó nó đủ tiêu chuẩn là Bản đồ. Nhập cảnh. Nó đại diện cho một cặp khóa và giá trị có thể tạo thành phần tử của Bản đồ.

Phương thức này trả về một dạng xem của bộ sưu tập. Ví dụ, hãy coi cityMap như một bản đồ. Nhà phát triển có thể sử dụng entrySet () để có được chế độ xem tập hợp của bản đồ có phần tử Map.Entry. Lập trình viên cũng có thể sử dụng getKey () và getValue () của Map.Entry để lấy cặp khóa và giá trị của bản đồ.

65) Phương pháp nào dùng để sắp xếp mảng theo thứ tự tăng dần?

Phương thức khung tập hợp Java, Collections.sort () được sử dụng để sắp xếp một mảng theo thứ tự tăng dần.

66) Làm thế nào để đo lường hiệu suất của ArrayList?

Hiệu suất của ArrayList có thể được đo lường bằng:

  • Thêm một phần tử: Nhà phát triển có thể thêm một phần tử vào cuối ArrayList bằng cách sử dụng phương thức add (E e). Đó là O (1). Trong trường hợp xấu nhất, nó có thể chuyển đến O (n). Điều này có thể xảy ra nếu nhà phát triển thêm nhiều phần tử hơn dung lượng mảng.
  • Truy xuất một phần tử : - Nhà phát triển có thể truy cập chỉ mục mảng bằng cách sử dụng get (int index). Hiệu suất, trong trường hợp này, có thể được đo lường bằng cách sử dụng ArrayList get () là O (1).
  • Xóa một phần tử: Trong trường hợp, nếu các nhà phát triển đang xóa phần tử bằng phương thức remove (int index), thì hiệu suất của ArrayList có thể được tính bằng cách sử dụng thao tác remove (int index) là phương thức O (n - index).

67) Giải thích lớp LinkedList

Lớp LinkedList trong Java triển khai Deque và List bằng cách sử dụng một danh sách được liên kết kép. Có một nút lớp riêng trong danh sách được liên kết kép cung cấp cấu trúc của nó. Nó cũng có một biến item để giữ giá trị và tham chiếu đến lớp Node. Điều này có thể được sử dụng để kết nối các nút tiếp theo và trước đó.

68) Cho một ví dụ về Hashmap

Ví dụ về Hashmap là:

import java.util.HashMap;import java.util.Map;public class Sample_TestMaps{public static void main(String[] args){Map objMap = 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) Làm thế nào để lặp lại bản đồ?

Nhà phát triển không thể trực tiếp lặp lại bản đồ, nhưng, giao diện này có hai phương pháp cung cấp chế độ xem bản đồ. Các phương pháp này là:

  • Set > entrySet (): Nó là một phương thức trả về một tập hợp có các mục được đề cập trong bản đồ. Những mục này thường bị phản đối, có loại Bản đồ. Nhập cảnh.
  • Set keySet (): Phương thức Java này trả về một tập hợp có khóa bản đồ.

70) Giải thích Sơ đồ dạng cây trong Java

TreeMap là một lớp thực hiện giao diện bản đồ LinkedHashMap và HashMap. Nó cũng có thể triển khai giao diện NavigableMap và có thể mở rộng lớp AbstractMap.

71) Sự khác biệt giữa Hashmap và Hashtable là gì?

Bản đồ băm Hashtable
Nó không được đồng bộ hóa. Nó được đồng bộ hóa.
HashMap cho phép một khóa dưới dạng giá trị null. HashTable không cho phép giá trị rỗng.
Iterator được sử dụng để duyệt qua HashMap. Lặp lại hoặc Trình điều tra được sử dụng để duyệt qua HashTable.
Nó có thể được sử dụng cho cả HashTable, HashMap và không nhanh. Nó có thể được sử dụng với HashTable và không an toàn.
HashMap hoạt động nhanh hơn HashTable. Hashtable không nhanh hơn nhiều so với HashMap.

72) Giải thích hoạt động bên trong của HashSet trong Java

HashSet trong Java nội bộ sử dụng HashMap để lưu trữ các phần tử. Nó cũng có thể lưu trữ các giá trị duy nhất không có giá trị trùng lặp.

Trong Java, nhà phát triển HashSet có thể có phương thức add (E e) chỉ lấy phần tử cần thêm làm tham số. Nó không chấp nhận cặp khóa và giá trị.

73) Giải thích ký hiệu Big-O với một ví dụ

Ký hiệu Big-O mô tả hiệu suất của một thuật toán dưới dạng số phần tử trong ArrayList. Nhà phát triển có thể sử dụng ký hiệu Big-O để chọn triển khai bộ sưu tập. Nó dựa trên hiệu suất, thời gian và bộ nhớ.

Ví dụ, ArrayList get (index i) là một phương thức để thực hiện một hoạt động thời gian không đổi. Nó không phụ thuộc vào tổng số phần tử có sẵn trong danh sách. Do đó, hiệu suất trong ký hiệu Big-O là O (1).

74) Giải thích các phương pháp hay nhất trong Java Collection Framework

Các phương pháp hay nhất trong Java Collection Framework là:

  • Chọn loại bộ sưu tập chính xác tùy thuộc vào nhu cầu.
  • Tránh băm lại hoặc thay đổi kích thước bằng cách ước tính tổng số phần tử sẽ được lưu trữ trong các lớp tập hợp.
  • Viết chương trình Java về giao diện. Điều này sẽ giúp nhà phát triển dễ dàng thay đổi việc triển khai nó trong tương lai.
  • Một nhà phát triển có thể sử dụng Generics để đảm bảo an toàn cho kiểu.
  • Sử dụng các lớp bất biến do Bộ phát triển Java cung cấp. Tránh triển khai bằng () và hashCode () cho các lớp tùy chỉnh.
  • Một lập trình viên nên sử dụng lớp tiện ích Collections cho các thuật toán hoặc để nhận các tập hợp chỉ đọc, đồng bộ hóa hoặc trống. Điều này sẽ nâng cao khả năng tái sử dụng mã với khả năng bảo trì thấp.

75) Giải thích các loại hàng đợi khác nhau trong Java

Có ba loại hàng đợi trong Java:

  • Hàng đợi ưu tiên: Đây là một loại Hàng đợi đặc biệt, trong đó các phần tử được sắp xếp theo thứ tự tự nhiên hoặc bộ so sánh tùy chỉnh của chúng.
  • Hàng đợi tròn: Là một loại Hàng đợi trong đó các thao tác của người dùng được thực hiện dựa trên phương thức FIFO. Phần tử cuối cùng được kết nối với vị trí đầu tiên để tạo thành một vòng tròn.
  • Hàng đợi kết thúc kép : Hàng đợi kết thúc kép là một kiểu dữ liệu trừu tượng tổng quát hóa một hàng đợi. Các phần tử trong hàng đợi này có thể được thêm hoặc bớt từ đầu hoặc đuôi.

76) Sự khác biệt giữa ngăn xếp và Hàng đợi là gì?

Cây rơm Xếp hàng
Nguyên lý hoạt động của ngăn xếp là LIFO. Nguyên tắc làm việc của hàng đợi là FIFO.
Một đầu được sử dụng để thực hiện việc chèn hoặc xóa các phần tử. Một đầu được sử dụng để thực hiện chèn và một đầu khác được sử dụng để xóa các phần tử.
Nó sử dụng một con trỏ. Nó sử dụng hai con trỏ trong một hàng đợi đơn giản.
Nó không có bất kỳ loại biến thể nào. Nó có các biến thể như hàng đợi ưu tiên, hàng đợi hình tròn, hàng đợi kết thúc kép.
Nó rất dễ dàng để sử dụng. Nó không phải là dễ dàng để sử dụng.

77) Sự khác biệt giữa mảng và ngăn xếp là gì?

Sự khác biệt giữa mảng và ngăn xếp là:

Mảng Cây rơm
Nó là một tập hợp các phần tử được xác định bởi chỉ mục. Nó là một hoạt động thu thập đóng vai trò như các hoạt động đẩy và bật.
Nó có các phần tử của kiểu dữ liệu giống nhau. Nó có các phần tử của kiểu dữ liệu khác nhau.
Các phần tử có thể được xóa hoặc thêm vào mảng bằng thao tác truy cập ngẫu nhiên. Các phần tử có thể được gỡ bỏ hoặc thêm vào một ngăn xếp bằng cách sử dụng phép toán LIFO.

78) Định nghĩa Iterator ()

Iterator () là một giao diện cung cấp các phương thức để lặp lại Bộ sưu tập. Trình lặp có thể thay thế cho Liệt kê trong Java. Nó cho phép người gọi xóa các phần tử khỏi bộ sưu tập. Phương pháp này cung cấp một cách chung để duyệt qua bằng cách sử dụng các phần tử của bộ sưu tập và triển khai mẫu thiết kế trình lặp.

79) Các cách khác nhau để lặp qua một danh sách là gì?

Lập trình viên Java collection Framework có thể lặp lại danh sách theo hai cách: 1) Sử dụng trình lặp và 2) sử dụng nó cho mỗi vòng lặp.

80) Ưu điểm của ngăn xếp là gì?

Ưu điểm của ngăn xếp là:

  • Nó giúp bạn quản lý dữ liệu theo phương pháp Last In First Out (LIFO), phương pháp này không thể thực hiện được với mảng và danh sách được Liên kết.
  • Khi một hàm được gọi, các biến cục bộ được lưu trữ trong một ngăn xếp và nó sẽ tự động bị hủy sau khi được trả về.
  • Ngăn xếp được sử dụng khi một biến không được sử dụng bên ngoài hàm đó.
  • Nó cho phép bạn kiểm soát cách bộ nhớ được cấp phát và phân bổ.
  • Stack tự động dọn dẹp đối tượng.
  • Không dễ bị hỏng
  • Không thể thay đổi kích thước các biến.