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:
A Quick Guide to Spring Cloud Consul
Check If a File or Directory Exists in Java
Phương thức tham chiếu trong Java 8 – Method References
Guide to Escaping Characters in Java RegExps
Guide to the Java TransferQueue
Hướng dẫn Java Design Pattern – Service Locator
Java NIO2 Path API
Autoboxing và Unboxing trong Java
Spring Boot - Unit Test Cases
Java Program to Implement Triply Linked List
Reactive WebSockets with Spring 5
Guava CharMatcher
Spring Boot - Web Socket
Consumer trong Java 8
Java Program to Implement the Program Used in grep/egrep/fgrep
OAuth 2.0 Resource Server With Spring Security 5
Java Program to Describe the Representation of Graph using Adjacency List
Hamcrest Collections Cookbook
Spring REST API + OAuth2 + Angular
Java Program to Implement Levenshtein Distance Computing Algorithm
Java Program to subtract two large numbers using Linked Lists
Checking for Empty or Blank Strings in Java
Java Program to Implement Euler Circuit Problem
Java Program to Perform Cryptography Using Transposition Technique
Guide to CountDownLatch in Java
Spring Security Form Login
Java Program to Implement ArrayDeque API
Spring Cloud Bus
Lập trình đa luồng với CompletableFuture trong Java 8
Java Stream Filter with Lambda Expression
Apache Commons Collections Bag
Java Program to Implement Hash Tables Chaining with Doubly Linked Lists