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:
Java Program to Implement Suffix Array
Java Program to Implement AttributeList API
Removing all Nulls from a List in Java
Circular Dependencies in Spring
Java Program to Perform Preorder Recursive Traversal of a Given Binary Tree
Java Program to Implement AA Tree
Hướng dẫn Java Design Pattern – Dependency Injection
Java Program to Find Path Between Two Nodes in a Graph
Functional Interface trong Java 8
Java Program to find the maximum subarray sum O(n^2) time(naive method)
A Quick Guide to Spring Cloud Consul
Converting a Stack Trace to a String in Java
Java Program to Implement ConcurrentLinkedQueue API
How to Iterate Over a Stream With Indices
A Guide to ConcurrentMap
Hướng dẫn Java Design Pattern – DAO
Java Program to Implement Singly Linked List
Java Program to Find Nearest Neighbor Using Linear Search
Convert Character Array to String in Java
A Custom Data Binder in Spring MVC
Java Program to Implement Selection Sort
Java Program to Construct a Random Graph by the Method of Random Edge Selection
A Guide to BitSet in Java
Apache Commons Collections Bag
A Guide to TreeMap in Java
Reactive Flow with MongoDB, Kotlin, and Spring WebFlux
A Guide to @RepeatedTest in Junit 5
Spring’s RequestBody and ResponseBody Annotations
Java Program to Decode a Message Encoded Using Playfair Cipher
Spring Boot - Actuator
LIKE Queries in Spring JPA Repositories
Java Program to Implement Min Heap