This Java program is to Implement Sparse array. In computer science, a sparse array is an array in which most of the elements have the same value (known as the default value—usually 0 or null). The occurrence of zero elements in a large array is inefficient for both computation and storage. An array in which there is a large number of zero elements is referred to as being sparse.
Here is the source code of the Java program to implement sparse array. The Java program is successfully compiled and run on a Linux system. The program output is also shown below.
class List
{
private int index;
private Object value;
private List nextindex;
public List(int index)
{
this.index = index;
nextindex = null;
value = null;
}
public List()
{
index = -1;
value = null;
nextindex = null;
}
public void store(int index, Object value)
{
List current = this;
List previous = null;
List node = new List(index);
node.value = value;
while (current != null && current.index < index)
{
previous = current;
current = current.nextindex;
}
if (current == null)
{
previous.nextindex = node;
} else
{
if (current.index == index)
{
System.out.println("DUPLICATE INDEX");
return;
}
previous.nextindex = node;
node.nextindex = current;
}
return;
}
public Object fetch(int index)
{
List current = this;
Object value = null;
while (current != null && current.index != index)
{
current = current.nextindex;
}
if (current != null)
{
value = current.value;
} else
{
value = null;
}
return value;
}
public int elementCount()
{
int elementCount = 0;
for (List current = this.nextindex; (current != null); current = current.nextindex)
{
elementCount++;
}
return elementCount;
}
}
public class SparseArray
{
private List start;
private int index;
SparseArray(int index)
{
start = new List();
this.index = index;
}
public void store(int index, Object value)
{
if (index >= 0 && index < this.index)
{
if (value != null)
start.store(index, value);
} else
{
System.out.println("INDEX OUT OF BOUNDS");
}
}
public Object fetch(int index)
{
if (index >= 0 && index < this.index)
return start.fetch(index);
else
{
System.out.println("INDEX OUT OF BOUNDS");
return null;
}
}
public int elementCount()
{
return start.elementCount();
}
public static void main(String... arg)
{
Integer[] iarray = new Integer[5];
iarray[0] = 1;
iarray[1] = null;
iarray[2] = 2;
iarray[3] = null;
iarray[4] = null;
SparseArray sparseArray = new SparseArray(5);
for (int i = 0; i < iarray.length; i++)
{
sparseArray.store(i, iarray[i]);
}
System.out.println("NORMAL ARRAY");
for (int i = 0 ; i < iarray.length; i++)
{
System.out.print(iarray[i] + "\t");
}
System.out.println("\nSPARSE ARRAY");
for (int i = 0; i < iarray.length; i++)
{
if (sparseArray.fetch(i) != null)
System.out.print(sparseArray.fetch(i) + "\t");
}
System.out.println("The Size of Sparse Array is " + sparseArray.elementCount());
}
}
$javac SparseArray.java $java SparseArray NORMAL ARRAY 1 null 2 null null SPARSE ARRAY 1 2 The Size of Sparse Array 2
Related posts:
Reactive WebSockets with Spring 5
Java Program to Implement Gale Shapley Algorithm
Tạo ứng dụng Java RESTful Client với thư viện Retrofit
Hướng dẫn sử dụng Printing Service trong Java
Versioning a REST API
Java – Rename or Move a File
Java Program to Implement Radix Sort
What is a POJO Class?
Lớp Arrarys trong Java (Arrays Utility Class)
Queue và PriorityQueue trong Java
JUnit 5 for Kotlin Developers
Spring Boot - Apache Kafka
Generating Random Numbers in a Range in Java
Setting Up Swagger 2 with a Spring REST API
Spring Data JPA Delete and Relationships
Java Deep Learning Essentials - Yusuke Sugomori
Spring Boot - Introduction
A Guide to Apache Commons Collections CollectionUtils
Guide to CopyOnWriteArrayList
Giới thiệu về Stream API trong Java 8
Java Program to Find the Connected Components of an UnDirected Graph
How to Remove the Last Character of a String?
Java Program to Implement the Monoalphabetic Cypher
Java Program to Implement Min Heap
Chuyển đổi giữa các kiểu dữ liệu trong Java
Reversing a Linked List in Java
@Before vs @BeforeClass vs @BeforeEach vs @BeforeAll
OAuth2 for a Spring REST API – Handle the Refresh Token in AngularJS
Java Program to Implement Wagner and Fisher Algorithm for online String Matching
REST Web service: Tạo ứng dụng Java RESTful Client với Jersey Client 2.x
Java Program to Perform Finite State Automaton based Search
Java Program to Implement Dijkstra’s Algorithm using Set