# Linear Data Structures in Java – Array, Linked list, Stacks, and Queues

*Linear data structures in Java is a way to organize the data in the language in a particular way so to use them in the most effective way. The main reason to classify them is that we need less complexity and less space.*

There are 4 types of Java linear data structures, let’s study one-by-one with real-time examples.

**WAIT, have you checked out what are Data Structures in Java? If you haven’t, check this out!!**

## Linear Data Structures in Java

The main linear data structures in Java are:

### 1. Java Array

*An array used to store data of the type homogenous at a contiguous place, size for the array is to define beforehand.*

Let the size of * Java array* be n.

**Accessing Time:**O(1) [This is possible because it stores elements at contiguous locations]**Search Time:**O(n) for Sequential Search: O(log n) for Binary Search [If Array is sorted]**Insertion Time:**O(n) [The worst case occurs when insertion happens at the beginning of an array and requires shifting all of the elements]**Deletion Time:**O(n) [This is the worst case occurs when deletion occurs at the starting of an array and requires shifting all of the elements]

**Java Array Example **

For storing the marks of a student we can create an array as this saves us from using a different variable for every subject, we can simply add data by traversing the array.

**Explore another User-Define Data Type – String in Java**

### 2. Java Linked List

*A linked list is another important linear data structures in Java, is similar to an array with the only difference that here every element (we call it a ‘node’) is treated as a separate object, every node has two parts, one the data and the reference to the next node.*

**Types of Linked List in Java-**

#### 2.1 Singly linked list

Singly linked list stores data and the reference to the next node or a null value.

#### 2.2 Doubly linked list

It is the same as a double linked list with the difference that it has two references, one for the last node and one for the previous node. This helps us traverse in both the directions and also we don’t need explicit permission for deletion of nodes.

**Do you know how to implement Bubble Sort in Java?**

#### 2.3 Circular Linked List

In this Java Linked List, all the nodes align to form a circle and also there is no NULL at the end, it helps us to define any node as first and also helps to implement a circular queue.

**Accessing time of an element:**O(n)**Search time of an element:**O(n)**Insertion of an Element:**O(1) [If we are at the position where we have to insert an element]**Deletion of an Element:**O(1) [If we know the address of node previous the node to be deleted]

**Example –**

Consider the last example (Circular Linked List) where we need to add the marks of the students and a new subject is added to the list, we cannot add this to array as the size is already fixed and if we make an array which is larger than there will be empty spaces left, so to overcome this drawback we use linked lists.

- The only drawback is that we cannot randomly access the nodes which were quite easy in arrays.

**Are you still confused about the difference between Core Java and Advanced Java? Check this Out!! **

### 3. Java Stack

It is one of the best linear data structures in Java, runs on the principle of* Last In First Out (LIFO)*. It allows the user to have two operations, viz., Push and Pop. Push allows us to add elements while Pop allows removing the last element. Both operations can take place at the same end.

**Insertion:**O(1)**Deletion:**O(1)**Access Time:**O(n) [Worst Case]- It allows Insertion and Deletion on only one end.

**Example –** Stacks in Java are utilized for keeping up work calls (the last called work must complete execution first), we can simply evacuate recursion with the assistance of stacks. Stack data Structures in Java is additionally utilized as a part of situations where we need to turn around a word, check for an adjusted bracket and in editors where the word you wrote the latter is the first to evacuate when you utilize fix activity. Correspondingly, to execute back usefulness in web programs.

### 4. Java Queue

A Queue is a last linear data structures in Java, offers the option * First In, First Out (FIFO)*, which helps us to save a collection of data, it is an abstract data type. It provides two major options enqueue, the way toward adding a component to the collection. The component is included from the backside and dequeue, the way toward expelling the principal component that was included. The component is expelled from the front side. It can actualize by utilizing both exhibit and connected rundown.

**Insertion:**O(1)**Deletion:**O(1)**Access Time:**O(n) [Worst Case]

**Recommended Reading – Garbage Collection in Java**

**Example –** Queue in Java as the name says is the information structure worked by the lines of transport stop or prepare where the individual who is remaining in the front of the queue(standing for a very long time) is the first to get the ticket. So any circumstance where assets are shared among various clients and served on first start things out server premise. Cases incorporate CPU planning, Disk Scheduling. Another utilization of queue is when information is exchanged non-concurrently (information did not really get at the same rate as sent) between two procedures. Illustrations incorporate IO Buffers, channels, document IO, and so on.

#### 4.1 Circular Queue

The upside of this Linear data structures in Java is that it diminishes wastage of room in the event of cluster execution, as the inclusion of the (n+1)’th component is done at the 0’th record on the off chance that it is vacant.

## Summary

Data structures are used to organize the data, which will use productively in the future. In the above article, we discuss some important linear data structure with their implementation and examples. Hope, you like the explanation.

Feedback and suggestions are always welcomed in the comment section.

**If you think Data Structure topic is over? So, you are WRONG, Learn the advanced concept – Hierarchical Data Structures in Java **

Hello,

I found your article very useful and the tools you talked about were unique.

thanks for posting..

Hello, Kiran

Thank you for showing interest in our “Java Data Structure” Tutorial. We hope you refer all relevant link which is in this Java tutorial, feel free to share this blogs with your peer groups.

Regards,

Data-Flair

very good tutorials site. I have visited many sites, but here presentations and way of explainations are just awesome. I finished my Google Search when i saw this site, and stayed here only.