What Is Non-Primitive Data Structure With Example?


Heather Bennett

Non-Primitive Data Structures: Explained with Examples

In the world of programming, data structures are essential for storing and organizing data efficiently. While primitive data types like integers and characters are widely used, there is another category known as non-primitive data structures that offer more complex ways to store and manipulate data. In this article, we will delve into what non-primitive data structures are and provide examples to help you understand them better.

What are Non-Primitive Data Structures?
Non-primitive data structures, also known as composite or derived data types, are designed to hold a collection of values of different types. Unlike primitive data types that store a single value, non-primitive structures allow you to organize and manage larger sets of related information.

These structures can be classified into various types, including arrays, lists, stacks, queues, trees, graphs, and more. Each type has its own unique properties and use cases. Let’s explore some popular examples below:


An array is a fundamental non-primitive data structure that stores a fixed-size sequence of elements of the same type. It provides random access to its elements through an index. For example:

int[] numbers = {1, 2, 3};

In the above example, an integer array named “numbers” is declared with three elements: 1, 2, and 3.


Lists are dynamic non-primitive structures that can grow or shrink in size during program execution. They allow you to add or remove elements easily. One commonly used list implementation is the ArrayList in Java:

ArrayList<String> names = new ArrayList<>();

The above code declares an ArrayList named “names” that stores strings.


A stack is a non-primitive data structure that follows the Last-In-First-Out (LIFO) principle. Elements are added to and removed from the top of the stack. Here’s an example of a stack implemented using a linked list:

Stack<Integer> stack = new Stack<>();

The above code declares a stack named “stack” that stores integers.


Queues, on the other hand, follow the First-In-First-Out (FIFO) principle. Elements are added at the end and removed from the front of the queue. One popular implementation is the PriorityQueue in Java:

PriorityQueue<String> queue = new PriorityQueue<>();

The above code declares a priority queue named “queue” that stores strings.


Trees are hierarchical non-primitive structures composed of nodes connected by edges. Each node can have children nodes, forming a branching structure. Binary trees are one common type of tree structure:

class Node {
int value;
Node left;
Node right;

The above code defines a binary tree node with an integer value and left and right child nodes.


Graphs consist of vertices connected by edges. They can represent various relationships between objects or entities. Here’s an example of an adjacency matrix representation of a graph:

int[][] adjMatrix = {
{0, 1, 1},
{1, 0, 0},
{1, 0, 0}

In the above code snippet, each row and column represents a vertex in the graph.

Non-primitive data structures are powerful tools that enable us to handle complex data relationships efficiently. By using arrays, lists, stacks, queues, trees, and graphs, we can build more sophisticated programs that can solve a wide range of problems.

In this article, we have explored various examples of non-primitive data structures and their applications. Understanding these structures will undoubtedly enhance your programming skills and open doors to more advanced algorithms and data manipulation techniques.

So go ahead and start experimenting with these data structures in your own code. The possibilities are endless!

Discord Server - Web Server - Private Server - DNS Server - Object-Oriented Programming - Scripting - Data Types - Data Structures

Privacy Policy