Table of Contents
Hashtable
Concurrentjava interview - data structure
Linkedjava interview - data structure, TreeMap, TreeSet
ArrayList, LinkedList, Vector
Collection and Collections
Binary tree
Common binary tree concepts
Binary tree traversal
Home Java JavaInterview questions java interview - data structure

java interview - data structure

Nov 25, 2020 pm 03:57 PM
java data structure interview

java interview - data structure

Common data structures include: java interview - data structure, Hashtable, Concurrentjava interview - data structure.

(Related video sharing: java teaching video)

Let’s introduce them separately:

java interview - data structure

  • Underlying implementation: The underlying overall structure of java interview - data structure is an array, and each element in the array is a linked list. Each time an object (put) is added, a linked list object (Object type) will be generated. Each Entry in the Map is an element in the array (Map.Entry is a <key></key>) , which has a reference from the current element to the next element, which forms a linked list.
  • Storage principle: When adding an element to HsahMap, first calculate the Hash value of the Key object and get the array subscript. If the position in the array is empty, insert it, otherwise traverse the linked list at this position. When a node's Key object and Node object are both equals to the new element, replace the node's Value object with the new element's Value object, otherwise insert a new node. (Note: Red-black trees were added after JDK 8)

The length of java interview - data structure is 2 raised to the nth power in order to make all bits of the binary value of length-1 complete. is 1. In this case, when the hash value and (table.length - 1) perform an & operation to calculate the index, the result is equivalent to the value of the last few digits of the hashcode. At this time, as long as the input hashcode itself is evenly distributed, the Hash algorithm The result is uniformity. Therefore, the default length of java interview - data structure is 16 to reduce the probability of hash collision, and it is also a suitable size.

java interview - data structure

Hashtable

Comparison point java interview - data structure Hashtable
Implementation principle See the previous section It is almost the same as the implementation principle of java interview - data structure
Key and Value Allow Key and Value to be null Do not allow Key and Value to be null
Expansion strategy 2x expansionoldThr 2x1 expansion(oldCapacity
Safety Thread-unsafe Thread-safe

Hashtable thread-safety strategy is very expensive to implement. All related operations of get/put are synchronized, and the performance is very poor in highly competitive concurrency scenarios.

Concurrentjava interview - data structure

Concurrentjava interview - data structure is a thread-safe and efficient java interview - data structure implementation provided in the Java concurrent package. It adopts a very sophisticated Segmentation Lock strategy, The backbone of Concurrentjava interview - data structure is the Segment array. Segment inherits from ReentrantLock and is a reentrant lock. Each Segment is a sub-hash table, and a HashEntry array is maintained in the Segment. In a concurrent environment, there is no need to consider lock competition when operating data from different Segments.

Concurrentjava interview - data structure

Linkedjava interview - data structure, TreeMap, TreeSet

  • Linkedjava interview - data structure: Sequential access java interview - data structure (implemented based on arrays and doubly linked lists).
  • TreeMap: Internal sorting (based on red-black tree implementation).
  • TreeSet: Ordered Set collection (based on binary tree implementation).

ArrayList, LinkedList, Vector

  • ArrayList: dynamic array (based on array implementation).
  • LinkedList: Ordered array (implemented based on doubly linked list).
  • Vector: Object container, which can put objects of different types (implemented based on arrays).

Collection and Collections

  • Collection: The superior interface of the collection class, and the sub-interfaces mainly include List, Set, Queue, etc.
  • Collections: Provides tool classes for searching, sorting, replacing, and thread-safety operations on collections.

(Recommendations for more related interview questions: java interview questions and answers)

Binary tree

Common binary tree concepts

  • B tree: see database sectionhttps://blog.csdn.net/u012102104/article/details/79773362

  • Balanced Binary Tree (AVL tree): The absolute value of the depth difference between the left and right subtrees of each node does not exceed 1.

  • Huffman tree: The binary tree with the smallest weighted path length is called the optimal binary tree. The Huffman tree construction is not unique, but the sum of the weighted path lengths of all leaf nodes is the smallest.

  • Red-black tree: a self-balancing binary search tree, its properties are:

    1. Nodes are red or black.
    2. The root node is black.
    3. Each leaf node is a black empty node (NIL node).
    4. The two child nodes of each red node are black.
    5. All paths from any node to each of its leaves contain the same number of black nodes.

    There cannot be two consecutive red nodes on all paths from each leaf to the root

Binary tree traversal

// 1. 先序遍历算法 DLRvoid Preorder ( BinTree bt ) {
	if ( bt ) {
		visit ( bt->data );
		Preorder ( bt->lchild );
		Preorder ( bt->rchild );
	}}// 2. 中序遍历算法 LDRvoid Inorder ( BinTree bt ) {
	if ( bt ) {
		Inorder ( bt->lchild );
		visit ( bt->data );
		Inorder ( bt->rchild );
	}}// 3. 后序遍历 LRDvoid Postorder ( BinTree bt ) {
	if ( bt ) {
		Postorder ( bt->lchild );
		Postorder ( bt->rchild );
		visit ( bt->data );
	}}// 4. 按层次遍历。/* 思路:利用一个队列,首先将根(头指针)入队列,以后若队列不空则取队头元素 p,
如果 p 不空,则访问之,然后将其左右子树入队列,如此循环直到队列为空。*/void LevelOrder ( BinTree bt ) {
	// 队列初始化为空
	InitQueue ( Q );
	// 根入队列
	EnQueue ( Q, bt );
	// 队列不空则继续遍历
	while ( ! QueueEmpty(Q) ) {
		DeQueue ( Q, p );
		if ( p!=NULL ) {
			visit ( p->data );
			// 左、右子树入队列
			EnQueue ( Q, p->lchild );
			EnQueue ( Q, p->rchild );
		}
	}}// 非递归遍历二叉树一般借助栈实现
Copy after login

Related recommendations: java introductory tutorial

The above is the detailed content of java interview - data structure. 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

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.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
1 months ago By 尊渡假赌尊渡假赌尊渡假赌

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)

Perfect Number in Java Perfect Number in Java Aug 30, 2024 pm 04:28 PM

Guide to Perfect Number in Java. Here we discuss the Definition, How to check Perfect number in Java?, examples with code implementation.

Weka in Java Weka in Java Aug 30, 2024 pm 04:28 PM

Guide to Weka in Java. Here we discuss the Introduction, how to use weka java, the type of platform, and advantages with examples.

Smith Number in Java Smith Number in Java Aug 30, 2024 pm 04:28 PM

Guide to Smith Number in Java. Here we discuss the Definition, How to check smith number in Java? example with code implementation.

Java Spring Interview Questions Java Spring Interview Questions Aug 30, 2024 pm 04:29 PM

In this article, we have kept the most asked Java Spring Interview Questions with their detailed answers. So that you can crack the interview.

Break or return from Java 8 stream forEach? Break or return from Java 8 stream forEach? Feb 07, 2025 pm 12:09 PM

Java 8 introduces the Stream API, providing a powerful and expressive way to process data collections. However, a common question when using Stream is: How to break or return from a forEach operation? Traditional loops allow for early interruption or return, but Stream's forEach method does not directly support this method. This article will explain the reasons and explore alternative methods for implementing premature termination in Stream processing systems. Further reading: Java Stream API improvements Understand Stream forEach The forEach method is a terminal operation that performs one operation on each element in the Stream. Its design intention is

TimeStamp to Date in Java TimeStamp to Date in Java Aug 30, 2024 pm 04:28 PM

Guide to TimeStamp to Date in Java. Here we also discuss the introduction and how to convert timestamp to date in java along with examples.

Java Program to Find the Volume of Capsule Java Program to Find the Volume of Capsule Feb 07, 2025 am 11:37 AM

Capsules are three-dimensional geometric figures, composed of a cylinder and a hemisphere at both ends. The volume of the capsule can be calculated by adding the volume of the cylinder and the volume of the hemisphere at both ends. This tutorial will discuss how to calculate the volume of a given capsule in Java using different methods. Capsule volume formula The formula for capsule volume is as follows: Capsule volume = Cylindrical volume Volume Two hemisphere volume in, r: The radius of the hemisphere. h: The height of the cylinder (excluding the hemisphere). Example 1 enter Radius = 5 units Height = 10 units Output Volume = 1570.8 cubic units explain Calculate volume using formula: Volume = π × r2 × h (4

Create the Future: Java Programming for Absolute Beginners Create the Future: Java Programming for Absolute Beginners Oct 13, 2024 pm 01:32 PM

Java is a popular programming language that can be learned by both beginners and experienced developers. This tutorial starts with basic concepts and progresses through advanced topics. After installing the Java Development Kit, you can practice programming by creating a simple "Hello, World!" program. After you understand the code, use the command prompt to compile and run the program, and "Hello, World!" will be output on the console. Learning Java starts your programming journey, and as your mastery deepens, you can create more complex applications.

See all articles