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:
ETags for REST with Spring
Java Stream Filter with Lambda Expression
Getting Started with Forms in Spring MVC
Java Program to Implement Queue
Java Program to Find Whether a Path Exists Between 2 Given Nodes
Java – Generate Random String
OAuth2 for a Spring REST API – Handle the Refresh Token in Angular
Java Program to Find MST (Minimum Spanning Tree) using Kruskal’s Algorithm
Documenting a Spring REST API Using OpenAPI 3.0
Semaphore trong Java
Java Program to implement Bi Directional Map
Zipping Collections in Java
Java Program to subtract two large numbers using Linked Lists
So sánh HashMap và Hashtable trong Java
Java Program to Perform the Unique Factorization of a Given Number
Java Program to Implement Dijkstra’s Algorithm using Queue
Java Program to Implement Binary Tree
Java Program to Implement Sorted Array
Creating Docker Images with Spring Boot
Java Program to Implement Skew Heap
Mệnh đề if-else trong java
Introduction to Spliterator in Java
Java Program to Implement Sieve Of Atkin
Check If a String Is Numeric in Java
Java Program to Implement Euclid GCD Algorithm
SOAP Web service: Authentication trong JAX-WS
Spring AMQP in Reactive Applications
Java Program to Generate All Possible Combinations Out of a, b, c, d, e
Java Program to Implement Treap
Concurrent Test Execution in Spring 5
Serialize Only Fields that meet a Custom Criteria with Jackson
Java Program to Implement Interval Tree