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:
Spring RestTemplate Error Handling
Introduction to Spring MVC HandlerInterceptor
Checked and Unchecked Exceptions in Java
Java Program to Find the GCD and LCM of two Numbers
Spring 5 WebClient
Java Program to Perform Preorder Non-Recursive Traversal of a Given Binary Tree
Java Program to Find ith Largest Number from a Given List Using Order-Statistic Algorithm
Spring Boot Tutorial – Bootstrap a Simple Application
Java Program to Represent Graph Using Incidence List
Format ZonedDateTime to String
Java Program to Construct an Expression Tree for an Prefix Expression
Tính trừu tượng (Abstraction) trong Java
Java Program to Represent Graph Using Linked List
Java Program to Implement Treap
Java Program to Implement CopyOnWriteArraySet API
Java Program to Find the Longest Path in a DAG
Converting Between Byte Arrays and Hexadecimal Strings in Java
Chuyển đổi giữa các kiểu dữ liệu trong Java
Spring Data JPA Delete and Relationships
Java Program to Perform Sorting Using B-Tree
Introduction to PCollections
Simplify the DAO with Spring and Java Generics
Java Program to Create the Prufer Code for a Tree
Java Program to Implement Threaded Binary Tree
Spring Boot - Unit Test Cases
Java Program to Implement ConcurrentHashMap API
Java Program to Give an Implementation of the Traditional Chinese Postman Problem
Spring Webflux and CORS
Ép kiểu trong Java (Type casting)
Automatic Property Expansion with Spring Boot
Spring Boot - Actuator
Java Program to Implement Naor-Reingold Pseudo Random Function