Advertisement
apad464

SparseArrayRunner

Mar 30th, 2023 (edited)
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.53 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.List;
  3.  
  4. class SparseArrayEntry {
  5.     private int row;
  6.     private int col;
  7.     private int value;
  8.  
  9.     public SparseArrayEntry(int r, int c, int v) {
  10.         row = r;
  11.         col = c;
  12.         value = v;
  13.     }
  14.  
  15.     public int getRow() {
  16.         return row;
  17.     }
  18.  
  19.     public int getCol() {
  20.         return col;
  21.     }
  22.  
  23.     public int getValue() {
  24.         return value;
  25.     }
  26.  
  27.     public String toString() {
  28.         return "\nrow :: " + getRow() +
  29.                 "\ncol :: " + getCol() +
  30.                 "\nvalue :: " + getValue() + "\n";
  31.     }
  32. }
  33.  
  34. class SparseArray {
  35.     private int numRows;
  36.     private int numCols;
  37.  
  38.     private List<SparseArrayEntry> entries;
  39.  
  40.     public SparseArray() {
  41.         entries = new ArrayList<SparseArrayEntry>();
  42.  
  43.         entries.add(new SparseArrayEntry(1, 4, 4));
  44.         entries.add(new SparseArrayEntry(2, 0, 1));
  45.         entries.add(new SparseArrayEntry(3, 1, -9));
  46.         entries.add(new SparseArrayEntry(1, 1, 5));
  47.         entries.add(new SparseArrayEntry(3, 2, 18));
  48.     }
  49.  
  50.     public int getNumRows() {
  51.         return numRows;
  52.     }
  53.  
  54.     public int getNumCols() {
  55.         return numCols;
  56.     }
  57.  
  58.     public int getValueAt(int row, int col) {
  59.         for (SparseArrayEntry entry : entries) {
  60.             if (entry.getRow() == row && entry.getCol() == col)
  61.                 return entry.getValue();
  62.         }
  63.         return 0;
  64.     }
  65.  
  66.     public void removeColumn(int col) {
  67.         for (int i = 0; i < entries.size(); i++) {
  68.             if (entries.get(i).getCol() == col) {
  69.                 entries.remove(i);
  70.                 i--;
  71.                 continue;
  72.             }
  73.             if (entries.get(i).getCol() > col)
  74.                 entries.set(i, new SparseArrayEntry(entries.get(i).getRow(), entries.get(i).getCol() - 1, entries.get(i).getValue()));
  75.         }
  76.     }
  77.  
  78.     public String toString() {
  79.         return entries.toString().replaceAll("\\[", "").replaceAll("]", "").replaceAll(",", "");
  80.     }
  81. }
  82.  
  83. public class SparseArrayRunner {
  84.     public static void main(String[] args) {
  85.         SparseArray test = new SparseArray();
  86.         System.out.println("entry at 3,1 is " + test.getValueAt(3, 1) + "\n");
  87.         System.out.println("entry at 3,2 is " + test.getValueAt(3, 2) + "\n");
  88.         test.removeColumn(1);
  89.         System.out.println(test);
  90.         System.out.println("entry at 3,1 is " + test.getValueAt(3, 1) + "\n");
  91.         System.out.println("entry at 3,2 is " + test.getValueAt(3, 2) + "\n");
  92.     }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement