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:
Cài đặt và sử dụng Swagger UI
Introduction to Liquibase Rollback
Spring Boot - Sending Email
Simple Single Sign-On with Spring Security OAuth2
Java Program to Implement Weight Balanced Tree
Logout in an OAuth Secured Application
Java Program to Print only Odd Numbered Levels of a Tree
A Quick Guide to Spring Cloud Consul
Java Program to Implement Levenshtein Distance Computing Algorithm
Spring Security Registration – Resend Verification Email
Java Program to Implement Quick Hull Algorithm to Find Convex Hull
Hướng dẫn Java Design Pattern – Transfer Object
Java Program to Perform LU Decomposition of any Matrix
Java Program to Print the Kind of Rotation the AVL Tree is Undergoing
OAuth2 for a Spring REST API – Handle the Refresh Token in AngularJS
Java Program to Implement Disjoint Sets
Guide to Spring Cloud Kubernetes
A Guide to the finalize Method in Java
Easy Ways to Write a Java InputStream to an OutputStream
Spring 5 Functional Bean Registration
Spring RequestMapping
Automatic Property Expansion with Spring Boot
Interface trong Java 8 – Default method và Static method
Spring WebClient vs. RestTemplate
Đồng bộ hóa các luồng trong Java
So sánh HashSet, LinkedHashSet và TreeSet trong Java
Using the Not Operator in If Conditions in Java
Hướng dẫn Java Design Pattern – Memento
Java Program to Check if an UnDirected Graph is a Tree or Not Using DFS
Annotation trong Java 8
Java Program to Represent Graph Using Adjacency List
Java Program to Check Multiplicability of Two Matrices