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 Hash Trie
Converting String to Stream of chars
Guide to Apache Commons CircularFifoQueue
Java Program to Optimize Wire Length in Electrical Circuit
Lớp Properties trong java
Sorting in Java
Spring Boot Security Auto-Configuration
The Registration Process With Spring Security
Hướng dẫn Java Design Pattern – Facade
Cachable Static Assets with Spring MVC
Thao tác với tập tin và thư mục trong Java
Spring Boot Integration Testing with Embedded MongoDB
Object Type Casting in Java
A Guide to Concurrent Queues in Java
Logout in an OAuth Secured Application
Java Program to Implement Queue using Linked List
Từ khóa this và super trong Java
Java Program to Solve Tower of Hanoi Problem using Stacks
CharSequence vs. String in Java
Jackson – Decide What Fields Get Serialized/Deserialized
Introduction to the Java NIO2 File API
So sánh Array và ArrayList trong Java
Implementing a Binary Tree in Java
The Guide to RestTemplate
Mệnh đề if-else trong java
A Guide to Java HashMap
Hashing a Password in Java
Lớp TreeMap trong Java
Java Program to Implement Sieve Of Eratosthenes
Flattening Nested Collections in Java
Hướng dẫn sử dụng luồng vào ra nhị phân trong Java
Java NIO2 Path API