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:
wait() and notify() Methods in Java
ETags for REST with Spring
A Guide to Apache Commons Collections CollectionUtils
Constructor Dependency Injection in Spring
Spring Cloud AWS – EC2
Guide to @ConfigurationProperties in Spring Boot
Upload and Display Excel Files with Spring MVC
Giới thiệu java.io.tmpdir
Java Program to Find MST (Minimum Spanning Tree) using Kruskal’s Algorithm
Tránh lỗi ConcurrentModificationException trong Java như thế nào?
Marker Interface trong Java
Hướng dẫn Java Design Pattern – Flyweight
Tạo ứng dụng Java RESTful Client với thư viện OkHttp
Java Program to Find Number of Spanning Trees in a Complete Bipartite Graph
HttpClient 4 Cookbook
Java Program to Implement Caesar Cypher
Java Program to Implement TreeMap API
Java Program to Check whether Undirected Graph is Connected using BFS
Java Program to Implement Counting Sort
Xử lý ngoại lệ đối với trường hợp ghi đè phương thức trong java
The Difference Between map() and flatMap()
Posting with HttpClient
How to Convert List to Map in Java
Java – Byte Array to Reader
Giới thiệu HATEOAS
How to Use if/else Logic in Java 8 Streams
Chuyển đổi từ HashMap sang ArrayList
Java – Create a File
Debug a HttpURLConnection problem
Java Program to Implement Interpolation Search Algorithm
Setting Up Swagger 2 with a Spring REST API
Java Program to Implement Patricia Trie