This Java Program is to Implement Sparse Matrix.In the subfield of numerical analysis, a sparse matrix is a matrix populated primarily with zeros (Stoer & Bulirsch 2002, p. 619) as elements of the table. By contrast, if a larger number of elements differ from zero, then it is common to refer to the matrix as a dense matrix. The fraction of zero elements (non-zero elements) in a matrix is called the sparsity (density).
Here is the source code of the Java Program to Implement Sparse Matrix. The Java program is successfully compiled and run on a Linux system. The program output is also shown below.
public class SparseMatrix { private int N; private SparseArray sparsearray[]; public SparseMatrix(int N) { this.N = N; sparsearray = new SparseArray[N]; for (int index = 0; index < N; index++) { sparsearray[index] = new SparseArray(N); } } public void store(int rowindex, int colindex, Object value) { if (rowindex < 0 || rowindex > N) throw new RuntimeException("row index out of bounds"); if (colindex < 0 || colindex > N) throw new RuntimeException("col index out of bounds"); sparsearray[rowindex].store(colindex, value); } public Object get(int rowindex, int colindex) { if (rowindex < 0 || colindex > N) throw new RuntimeException("row index out of bounds"); if (rowindex < 0 || colindex > N) throw new RuntimeException("col index out of bounds"); return (sparsearray[rowindex].fetch(colindex)); } public static void main(String... arg) { Integer[][] iarray = new Integer[3][3]; iarray[0][0] = 1; iarray[0][1] = null; iarray[0][2] = 2; iarray[1][0] = null; iarray[1][1] = 3; iarray[1][2] = null; iarray[2][0] = 4; iarray[2][1] = 6; iarray[2][2] = null; SparseMatrix sparseMatrix = new SparseMatrix(3); for (int rowindex = 0; rowindex < 3; rowindex++) { for (int colindex = 0; colindex < 3; colindex++) { sparseMatrix.store(rowindex, colindex, iarray[rowindex][colindex]); } } System.out.println("the sparse Matrix is "); for (int rowindex = 0; rowindex < 3; rowindex++) { for (int colindex = 0; colindex < 3; colindex++) { System.out.print(sparseMatrix.get(rowindex, colindex) + "\t"); } System.out.println(); } } } 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(); } }
$javac SparseMatrix.java $java SparseMatrix the sparse Matrix is 1 null 2 null 3 null 4 6 null
Related posts:
Composition, Aggregation, and Association in Java
Using Java Assertions
Ways to Iterate Over a List in Java
Generating Random Dates in Java
Converting String to Stream of chars
Guide to the Fork/Join Framework in Java
Sort a HashMap in Java
Ignore Null Fields with Jackson
Phương thức forEach() trong java 8
Java Program to Implement Min Heap
wait() and notify() Methods in Java
Java Program to Implement Suffix Array
Sao chép các phần tử của một mảng sang mảng khác như thế nào?
Java Program to Implement Floyd-Warshall Algorithm
Java Program to Check whether Directed Graph is Connected using BFS
Receive email using POP3
Refactoring Design Pattern với tính năng mới trong Java 8
Java Program to Find MST (Minimum Spanning Tree) using Kruskal’s Algorithm
Exception Handling in Java
Java 8 Stream API Analogies in Kotlin
Hướng dẫn Java Design Pattern – Intercepting Filter
Spring Data JPA and Null Parameters
Iterable to Stream in Java
So sánh ArrayList và LinkedList trong Java
Calling Stored Procedures from Spring Data JPA Repositories
Mapping a Dynamic JSON Object with Jackson
An Introduction to ThreadLocal in Java
Logout in an OAuth Secured Application
Java Program to Implement RoleList API
Java – File to Reader
Java Program to Represent Graph Using 2D Arrays
New Features in Java 13