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 Map With Case-Insensitive Keys
Java Program to Check for balanced parenthesis by using Stacks
Call Methods at Runtime Using Java Reflection
Hướng dẫn Java Design Pattern – Intercepting Filter
Java Program to Find the Shortest Path Between Two Vertices Using Dijkstra’s Algorithm
Guide to CountDownLatch in Java
wait() and notify() Methods in Java
Spring WebClient Requests with Parameters
Guide to java.util.concurrent.BlockingQueue
Java Program to Implement LinkedBlockingQueue API
How to Delay Code Execution in Java
Spring Boot - Twilio
HttpClient Connection Management
Java Program to Perform Polygon Containment Test
Java Program to Perform Postorder Recursive Traversal of a Given Binary Tree
Handling URL Encoded Form Data in Spring REST
Wrapper Classes in Java
Sao chép các phần tử của một mảng sang mảng khác như thế nào?
Spring 5 Testing with @EnabledIf Annotation
Hướng dẫn Java Design Pattern – Prototype
Java Program to Implement Find all Cross Edges in a Graph
Java Program to Implement Park-Miller Random Number Generation Algorithm
Java Program to Describe the Representation of Graph using Adjacency List
Spring Security Form Login
Hướng dẫn Java Design Pattern – Strategy
HttpAsyncClient Tutorial
Java Perform to a 2D FFT Inplace Given a Complex 2D Array
A Guide to Java 9 Modularity
String Processing with Apache Commons Lang 3
Guide to java.util.concurrent.Future
Retrieve User Information in Spring Security
Hashtable trong java