Home Java JavaInterview questions Differences between java collections interview questions

Differences between java collections interview questions

Nov 29, 2019 pm 03:49 PM
java

Differences between java collections interview questions

What is the difference between HashMap and Hashtable?

HashMap and Hashtable both implement the Map interface, so many features are very similar. However, they have the following differences: HashMap allows keys and values ​​to be null, while Hashtable does not allow keys or values ​​to be null. (Recommended study: java interview questions)

Hashtable is synchronous, but HashMap is not. Therefore, HashMap is more suitable for single-threaded environments, while Hashtable is suitable for multi-threaded environments.

HashMap provides a collection of keys that can be iterated by the application. Therefore, HashMap is fail-fast. On the other hand, Hashtable provides an enumeration of keys.

It is generally believed that Hashtable is a legacy class.

What is the difference between array (Array) and list (ArrayList)? When should you use Array instead of ArrayList?

The differences between Array and ArrayList are listed below:

Array can contain basic types and object types, and ArrayList can only contain object types.

The size of Array is fixed, and the size of ArrayList changes dynamically.

ArrayList provides more methods and features, such as: addAll(), removeAll(), iterator(), etc. For basic types of data, collections use autoboxing to reduce coding effort. However, this approach is relatively slow when dealing with fixed-size primitive data types.

What is the difference between ArrayList and LinkedList?

ArrayList and LinkedList both implement the List interface. They have the following differences:

ArrayList is an index-based data interface, and its bottom layer is an array. It can perform random access to elements with O(1) time complexity. Correspondingly, LinkedList stores its data in the form of a list of elements. Each element is linked to its previous and following elements. In this case, the time complexity of finding an element is O( n).

Compared to ArrayList, LinkedList's insertion, addition, and deletion operations are faster because when an element is added to any position in the collection, there is no need to recalculate the size or update the index like an array.

LinkedList takes up more memory than ArrayList because LinkedList stores two references for each node, one pointing to the previous element and one pointing to the next element.

You can also refer to ArrayList vs. LinkedList.

What do the Comparable and Comparator interfaces do? List their differences.

Java provides the Comparable interface which contains only one compareTo() method. This method can sort two objects. Specifically, it returns negative numbers, 0, and positive numbers to indicate that the input object is less than, equal to, or greater than an existing object.

Java provides the Comparator interface containing two methods: compare() and equals(). The compare() method is used to sort two input parameters and returns a negative number, 0. A positive number indicates that the first parameter is less than, equal to, or greater than the second parameter.

The equals() method requires an object as a parameter, which is used to determine whether the input parameter is equal to the comparator. This method returns true only if the input parameter is also a comparator and the sorting result of the input parameter and the current comparator is the same.

What is the difference between HashSet and TreeSet?

HashSet is implemented by a hash table, therefore, its elements are unordered. The time complexity of the add(), remove(), and contains() methods is O(1).

On the other hand, TreeSet is implemented by a tree structure, and the elements in it are ordered. Therefore, the time complexity of the add(), remove(), contains() methods is O(logn).

What is the difference between HashMap and ConcurrentHashMap?

ConcurrentHashMap is a thread-safe implementation of HashMap. The main differences are as follows:

ConcurrentHashMap divides the entire bucket array into segments, and then uses lock locks to protect each segment. Compared with Hashtable's syn keyword lock, the granularity is finer. Some, the concurrency performance is better. HashMap has no lock mechanism and is not thread-safe.

HashMap's key-value pairs allow null, but ConCurrentHashMap does not allow it.

After JDK8, ConcurrentHashMap enabled a new way to implement it, using the CAS algorithm.

Do List, Set, and Map inherit from Collection interface?

List and Set are, but Map is not. Map is a key-value pair mapping container, which is obviously different from List and Set. Set stores scattered elements and does not allow duplicate elements (the same is true for sets in mathematics). List is a container with a linear structure and is suitable for numeric values. Index access to elements.

Tell me the storage performance and characteristics of ArrayList, Vector, and LinkedList?

ArrayList and Vector both use arrays to store data. The number of array elements is larger than the actual stored data so that elements can be added and inserted. They both allow elements to be directly indexed by serial numbers, but inserting elements involves memory operations such as moving array elements. , so indexing data is fast but inserting data is slow. Because Vector uses the synchronized method (thread safety), its performance is usually worse than ArrayList.

LinkedList uses a doubly linked list to implement storage (associating scattered memory units in the memory through additional references to form a linear structure that can be indexed by serial number. This chain storage method is consistent with the continuous storage method of the array. Compared with (in fact, the memory utilization is higher), indexing data by serial number requires forward or backward traversal, but when inserting data, you only need to record the before and after items of this item, so the insertion speed is faster.

Vector is a legacy container (containers used in early JDK, in addition to Hashtable, Dictionary, BitSet, Stack, and Properties are all legacy containers). It is no longer recommended to use, but because ArrayList and LinkedListed both It is not thread-safe. If multiple threads need to operate the same container, you can convert it into a thread-safe container through the synchronizedList method in the tool class Collections before using it (this is actually the best example of the decoration mode, which will The object is passed into the constructor of another class to create a new object to add new functionality).

What are the characteristics of each of the three interfaces List, Map, and Set when storing elements?

List is an ordered Collection. Using this interface, you can precisely control the insertion position of each element. Users can access elements in a List using an index (the element's position in the List, similar to an array subscript), similar to Java's arrays.

Set is a Collection that does not contain duplicate elements, that is, any two elements e1 and e2 have e1.equals(e2)=false, and Set has at most one null element.

Map interface: Please note that Map does not inherit the Collection interface. Map provides key to value mapping

The above is the detailed content of Differences between java collections interview questions. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Tips for Writing PHP Comments Tips for Writing PHP Comments Jul 18, 2025 am 04:51 AM

The key to writing PHP comments is to clarify the purpose and specifications. Comments should explain "why" rather than "what was done", avoiding redundancy or too simplicity. 1. Use a unified format, such as docblock (/*/) for class and method descriptions to improve readability and tool compatibility; 2. Emphasize the reasons behind the logic, such as why JS jumps need to be output manually; 3. Add an overview description before complex code, describe the process in steps, and help understand the overall idea; 4. Use TODO and FIXME rationally to mark to-do items and problems to facilitate subsequent tracking and collaboration. Good annotations can reduce communication costs and improve code maintenance efficiency.

Improving Readability with Comments Improving Readability with Comments Jul 18, 2025 am 04:46 AM

The key to writing good comments is to explain "why" rather than just "what was done" to improve the readability of the code. 1. Comments should explain logical reasons, such as considerations behind value selection or processing; 2. Use paragraph annotations for complex logic to summarize the overall idea of functions or algorithms; 3. Regularly maintain comments to ensure consistency with the code, avoid misleading, and delete outdated content if necessary; 4. Synchronously check comments when reviewing the code, and record public logic through documents to reduce the burden of code comments.

Writing Effective PHP Comments Writing Effective PHP Comments Jul 18, 2025 am 04:44 AM

Comments cannot be careless because they want to explain the reasons for the existence of the code rather than the functions, such as compatibility with old interfaces or third-party restrictions, otherwise people who read the code can only rely on guessing. The areas that must be commented include complex conditional judgments, special error handling logic, and temporary bypass restrictions. A more practical way to write comments is to select single-line comments or block comments based on the scene. Use document block comments to explain parameters and return values at the beginning of functions, classes, and files, and keep comments updated. For complex logic, you can add a line to the previous one to summarize the overall intention. At the same time, do not use comments to seal code, but use version control tools.

PHP Development Environment Setup PHP Development Environment Setup Jul 18, 2025 am 04:55 AM

The first step is to select the integrated environment package XAMPP or MAMP to build a local server; the second step is to select the appropriate PHP version according to the project needs and configure multiple version switching; the third step is to select VSCode or PhpStorm as the editor and debug with Xdebug; in addition, you need to install Composer, PHP_CodeSniffer, PHPUnit and other tools to assist in development.

Effective PHP Commenting Effective PHP Commenting Jul 18, 2025 am 04:33 AM

The key to writing PHP comments is clear, useful and concise. 1. Comments should explain the intention behind the code rather than just describing the code itself, such as explaining the logical purpose of complex conditional judgments; 2. Add comments to key scenarios such as magic values, old code compatibility, API interfaces, etc. to improve readability; 3. Avoid duplicate code content, keep it concise and specific, and use standard formats such as PHPDoc; 4. Comments should be updated synchronously with the code to ensure accuracy. Good comments should be thought from the perspective of others, reduce the cost of understanding, and become a code understanding navigation device.

PHP Commenting Syntax PHP Commenting Syntax Jul 18, 2025 am 04:56 AM

There are three common ways to use PHP comments: single-line comments are suitable for briefly explaining code logic, such as // or # for the explanation of the current line; multi-line comments /*...*/ are suitable for detailed description of the functions or classes; document comments DocBlock start with /** to provide prompt information for the IDE. When using it, you should avoid nonsense, keep updating synchronously, and do not use comments to block codes for a long time.

PHP Comparison Operators PHP Comparison Operators Jul 18, 2025 am 04:57 AM

PHP comparison operators need to pay attention to type conversion issues. 1. Use == to compare values only, and type conversion will be performed, such as 1=="1" is true; 2. Use === to require the same value as the type, such as 1==="1" is false; 3. Size comparison can be used on values and strings, such as "apple"

Understanding PHP Comments Understanding PHP Comments Jul 18, 2025 am 04:24 AM

PHP comments are parts of the code that are used to interpret logic, tag tasks, or temporarily block code and are not executed by the server. Its core functions include: 1. Improve the readability of the code, which facilitates quick understanding of others and future self; 2. Supports two formats: single-line comments (// or #) and multi-line comments (//); 3. Common uses cover function descriptions, complex logic explanations, TODO markings and disable code during debugging; 4. Effective comments should avoid duplicate code, explain the reasons rather than operations, keep it concise and add version records where necessary, thereby significantly improving code maintenance efficiency.

See all articles