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:
Handling Errors in Spring WebFlux
Guide to Java 8 groupingBy Collector
Using the Map.Entry Java Class
New in Spring Security OAuth2 – Verify Claims
Hashing a Password in Java
Truyền giá trị và tham chiếu trong java
Java Program to Implement Shunting Yard Algorithm
Converting a Stack Trace to a String in Java
Java Program to Implement Randomized Binary Search Tree
Spring Cloud – Adding Angular
Simple Single Sign-On with Spring Security OAuth2
Spring REST with a Zuul Proxy
Java Program to Perform Postorder Non-Recursive Traversal of a Given Binary Tree
HttpClient Basic Authentication
Java Program to Create a Minimal Set of All Edges Whose Addition will Convert it to a Strongly Conne...
Giới thiệu Google Guice – Dependency injection (DI) framework
Java Program to Implement WeakHashMap API
Hamcrest Collections Cookbook
Java Program to Implement Extended Euclid Algorithm
Java Program to Find the Edge Connectivity of a Graph
Java Program to Implement Disjoint Sets
Kiểu dữ liệu Ngày Giờ (Date Time) trong java
Spring Webflux with Kotlin
Java Program to Implement Graham Scan Algorithm to Find the Convex Hull
Spring Security Custom AuthenticationFailureHandler
Serve Static Resources with Spring
Hướng dẫn kết nối cơ sở dữ liệu với Java JDBC
Spring REST API + OAuth2 + Angular
Java Program to Implement Uniform-Cost Search
Quick Guide to Spring Controllers
Lập trình đa luồng trong Java (Java Multi-threading)
Introduction to the Java NIO Selector