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:
Spring Cloud – Tracing Services with Zipkin
Adding Parameters to HttpClient Requests
Introduction to the Java NIO2 File API
How to Get All Dates Between Two Dates?
Using Spring ResponseEntity to Manipulate the HTTP Response
ETL with Spring Cloud Data Flow
Converting Between Byte Arrays and Hexadecimal Strings in Java
ClassNotFoundException vs NoClassDefFoundError
Toán tử trong java
Java Program to implement Bit Matrix
Xây dựng ứng dụng Client-Server với Socket trong Java
Partition a List in Java
Examine the internal DNS cache
Java Program to Implement Unrolled Linked List
Java Program to Implement Vector API
Configuring a DataSource Programmatically in Spring Boot
Guide to CopyOnWriteArrayList
Guide to Escaping Characters in Java RegExps
Java Program to Perform Quick Sort on Large Number of Elements
Java Program to Perform Polygon Containment Test
Java Program to Construct a Random Graph by the Method of Random Edge Selection
Guide to the ConcurrentSkipListMap
Java InputStream to String
Java Program to Implement Sorted Doubly Linked List
Chương trình Java đầu tiên
Spring MVC and the @ModelAttribute Annotation
HashMap trong Java hoạt động như thế nào?
Java Program to Implement Hash Trie
Spring Boot Integration Testing with Embedded MongoDB
HttpClient 4 Cookbook
Spring Boot - Securing Web Applications
Filtering a Stream of Optionals in Java