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 Implement Sorting of Less than 100 Numbers in O(n) Complexity
Spring Boot - OAuth2 with JWT
Hướng dẫn Java Design Pattern – Observer
Java Program to Implement HashMap API
Java Program to Check if a Directed Graph is a Tree or Not Using DFS
Reading an HTTP Response Body as a String in Java
Java Program to Use Above Below Primitive to Test Whether Two Lines Intersect
The HttpMediaTypeNotAcceptableException in Spring MVC
Java Program to Find a Good Feedback Edge Set in a Graph
Guide to ThreadLocalRandom in Java
Java Program to Implement Hopcroft Algorithm
Converting a List to String in Java
New Stream Collectors in Java 9
LIKE Queries in Spring JPA Repositories
Using JWT with Spring Security OAuth
ExecutorService – Waiting for Threads to Finish
Tìm hiểu cơ chế Lazy Evaluation của Stream trong Java 8
So sánh HashMap và HashSet trong Java
A Guide to TreeMap in Java
Java Program to Implement Control Table
Spring Boot - Scheduling
Calling Stored Procedures from Spring Data JPA Repositories
Tạo ứng dụng Java RESTful Client với thư viện OkHttp
Giới thiệu Java 8
Spring Data Java 8 Support
Remove All Occurrences of a Specific Value from a List
OAuth 2.0 Resource Server With Spring Security 5
Java – Get Random Item/Element From a List
What is a POJO Class?
Guide to Selenium with JUnit / TestNG
Java Program to Implement Hash Tables chaining with Singly Linked Lists
Java Program to Implement Gauss Jordan Elimination