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 Check Whether Graph is DAG
Serialize Only Fields that meet a Custom Criteria with Jackson
Tránh lỗi ConcurrentModificationException trong Java như thế nào?
Spring Boot - OAuth2 with JWT
How to Remove the Last Character of a String?
Java Program to Implement the One Time Pad Algorithm
More Jackson Annotations
The StackOverflowError in Java
Life Cycle of a Thread in Java
Java Program to Implement Sorted Circular Doubly Linked List
The Order of Tests in JUnit
Derived Query Methods in Spring Data JPA Repositories
Spring Security – Reset Your Password
Java Program to Implement Gift Wrapping Algorithm in Two Dimensions
Spring Boot - Twilio
Guide to java.util.concurrent.BlockingQueue
Lập trình hướng đối tượng (OOPs) trong java
Get and Post Lists of Objects with RestTemplate
A Guide to Queries in Spring Data MongoDB
Java Program to Implement Merge Sort Algorithm on Linked List
Comparing Arrays in Java
Java Program to Check Whether an Undirected Graph Contains a Eulerian Path
Find the Registered Spring Security Filters
Java Program to Implement Stein GCD Algorithm
Java Program to Check if a Given Graph Contain Hamiltonian Cycle or Not
Java – Byte Array to Reader
A Guide to Concurrent Queues in Java
Java Program to Generate Random Numbers Using Middle Square Method
How to Implement Caching using Adonis.js 5
Testing in Spring Boot
A Guide to @RepeatedTest in Junit 5
How to Read HTTP Headers in Spring REST Controllers