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:
wait() and notify() Methods in Java
Spring WebFlux Filters
JUnit 5 for Kotlin Developers
Java Program to Decode a Message Encoded Using Playfair Cipher
Spring Boot - File Handling
ExecutorService – Waiting for Threads to Finish
Derived Query Methods in Spring Data JPA Repositories
A Guide to JUnit 5 Extensions
Query Entities by Dates and Times with Spring Data JPA
Java – Combine Multiple Collections
Configure a RestTemplate with RestTemplateBuilder
Java Program to Implement Floyd-Warshall Algorithm
Java Program to Generate All Possible Combinations of a Given List of Numbers
Java Web Services – Jersey JAX-RS – REST và sử dụng REST API testing tools với Postman
Spring Boot - Cloud Configuration Client
Getting a File’s Mime Type in Java
Java Program to Implement Min Hash
Java Program to Implement Hopcroft Algorithm
Form Validation with AngularJS and Spring MVC
Apache Commons Collections Bag
Logging a Reactive Sequence
An Introduction to Java.util.Hashtable Class
Hướng dẫn Java Design Pattern – Builder
Java Program to Implement Ternary Search Tree
HttpClient Basic Authentication
Hướng dẫn Java Design Pattern – Command
Java Program to Implement CopyOnWriteArrayList API
Feign – Tạo ứng dụng Java RESTful Client
Guide to WeakHashMap in Java
Flattening Nested Collections in Java
Giới thiệu Java Service Provider Interface (SPI) – Tạo các ứng dụng Java dễ mở rộng
Comparing getPath(), getAbsolutePath(), and getCanonicalPath() in Java