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 AttributeList API
Hướng dẫn Java Design Pattern – Prototype
Java Program to Implement Sorted Vector
Java Program to Find a Good Feedback Edge Set in a Graph
Java Program to Implement Control Table
Tạo số và chuỗi ngẫu nhiên trong Java
Spring MVC Content Negotiation
Functional Interfaces in Java 8
Java IO vs NIO
Concatenating Strings In Java
Upload and Display Excel Files with Spring MVC
Spring Boot Security Auto-Configuration
Java Program to Implement Circular Doubly Linked List
Uploading MultipartFile with Spring RestTemplate
Overview of the java.util.concurrent
Java Program to Implement Fenwick Tree
Java Program to Implement TreeMap API
Java Program to Find Second Smallest of n Elements with Given Complexity Constraint
Java Program to Perform Uniform Binary Search
Guide to Mustache with Spring Boot
Guide to java.util.Formatter
How To Serialize and Deserialize Enums with Jackson
Java Web Services – JAX-WS – SOAP
Spring Security OAuth Login with WebFlux
Hướng dẫn Java Design Pattern – Flyweight
Spring Boot - Zuul Proxy Server and Routing
Using Optional with Jackson
Java Program to Represent Graph Using Incidence Matrix
Converting a Stack Trace to a String in Java
Giới thiệu Swagger – Công cụ document cho RESTfull APIs
Primitive Type Streams in Java 8
Java Program to Find the Vertex Connectivity of a Graph