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 Generate Random Hexadecimal Byte
Java Program to Implement Maximum Length Chain of Pairs
Java Program to Construct K-D Tree for 2 Dimensional Data
Java Convenience Factory Methods for Collections
Spring Boot - Tracing Micro Service Logs
A Guide to WatchService in Java NIO2
Spring @RequestMapping New Shortcut Annotations
Refactoring Design Pattern với tính năng mới trong Java 8
An Introduction to ThreadLocal in Java
Logging a Reactive Sequence
Java Program to implement Associate Array
Comparing Dates in Java
Java Perform to a 2D FFT Inplace Given a Complex 2D Array
Java Program to Describe the Representation of Graph using Adjacency List
String Joiner trong Java 8
OAuth2 Remember Me with Refresh Token
Spring MVC Tutorial
JUnit5 Programmatic Extension Registration with @RegisterExtension
Hướng dẫn Java Design Pattern – DAO
Java Program to Implement Multi-Threaded Version of Binary Search Tree
Java 8 – Powerful Comparison with Lambdas
Hướng dẫn kết nối cơ sở dữ liệu với Java JDBC
Command-Line Arguments in Java
How to Change the Default Port in Spring Boot
Java – Byte Array to Reader
Java Program to Solve the 0-1 Knapsack Problem
Java Program to Find Transpose of a Graph Matrix
Exploring the Spring 5 WebFlux URL Matching
Java Program to Check Whether a Directed Graph Contains a Eulerian Path
Arrays.asList vs new ArrayList(Arrays.asList())
OAuth2.0 and Dynamic Client Registration
Java Program to Implement LinkedList API