Advertisement
MarijaDzingova

Untitled

Dec 16th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.46 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. class Matrix<T> {
  7. private ArrayList<ArrayList<T>>matrix;
  8. private int numRow;
  9. private int numCol;
  10.  
  11. public Matrix(int row,int col) {
  12. this.numRow = row;
  13. this.numCol=col;
  14. this.matrix=new ArrayList<>();
  15. for (int i = 0; i < row;i++){
  16. matrix.add(new ArrayList<>());
  17. for(int j=0;j < col;j++)
  18. matrix.get(i).add(null);
  19. }
  20. }
  21. public int getNumRows(){
  22. return numRow;
  23. }
  24. public int getNumColumns(){
  25. return numCol;
  26. }
  27. public T getElementAt(int row,int col){
  28. return matrix.get(row).get(col);
  29. }
  30. public void setElementAt(int row,int col,T element){
  31. matrix.get(row).set(col,element);
  32. }
  33. public void fill(T element){
  34. for(int i=0;i < numRow;i++){
  35. for(int j=0;j < numCol;j++){
  36. setElementAt(i,j,element);
  37. }
  38. }
  39. }
  40. public void insertRow(int row){
  41. if (0 > row || row > numRow)
  42. throw new ArrayIndexOutOfBoundsException();
  43. matrix.add(row,new ArrayList<>());
  44. for(int i=0;i < numCol;i++)
  45. matrix.get(row).add(null);
  46. numRow++;
  47. }
  48.  
  49. public void deleteRow(int row){
  50. if (0 > row || row > numRow)
  51. throw new ArrayIndexOutOfBoundsException();
  52. matrix.remove(row);
  53. numRow--;
  54. }
  55. public void insertColumn(int col){
  56. if (0 > col || col > numCol)
  57. throw new ArrayIndexOutOfBoundsException();
  58. for(int i=0;i < numRow;i++){
  59. matrix.get(i).add(col,null);
  60. }
  61. numCol++;
  62. }
  63.  
  64. public void deleteColumn(int col){
  65. if (0 > col || col > numCol)
  66. throw new ArrayIndexOutOfBoundsException();
  67. for(int i=0;i < numRow;i++){
  68. matrix.get(i).remove(col);
  69. }
  70. numCol--;
  71. }
  72.  
  73. public void resize(int rows,int col){
  74. if(rows <= numRow)
  75. for(int i=numRow-1;i >= rows;i--){
  76. deleteRow(i);
  77. }
  78. else
  79. for(int i=numRow;i < rows;i++){
  80. insertRow(i);
  81. }
  82. if(col <= numCol){
  83. for(int i=numCol-1;i >=col;i--){
  84. deleteColumn(i);
  85. }
  86. }else
  87. for(int i=numCol;i < col;i++){
  88. insertColumn(i);
  89. }
  90. }
  91. }
  92.  
  93.  
  94.  
  95. public class MatrixTest {
  96.  
  97. public static void main(String[] args) {
  98. Scanner jin = new Scanner(System.in);
  99. int t = jin.nextInt();
  100. if ( t == 0 ) {
  101. int r = jin.nextInt();
  102. int c = jin.nextInt();
  103. Matrix<Integer> matrix = new Matrix<Integer>(r,c);
  104. print(matrix);
  105. }
  106. if ( t == 1 ) {
  107. int r = jin.nextInt();
  108. int c = jin.nextInt();
  109. Matrix<Integer> matrix = new Matrix<Integer>(r,c);
  110. for ( int i = 0 ; i < r ; ++i ) {
  111. for ( int k = 0 ; k < c ; ++k ) {
  112. matrix.setElementAt(i, k, jin.nextInt());
  113. }
  114. }
  115. print(matrix);
  116. }
  117. if ( t == 2 ) {
  118. int r = jin.nextInt();
  119. int c = jin.nextInt();
  120. Matrix<String> matrix = new Matrix<String>(r,c);
  121. for ( int i = 0 ; i < r ; ++i ) {
  122. for ( int k = 0 ; k < c ; ++k ) {
  123. matrix.setElementAt(i, k, jin.next());
  124. }
  125. }
  126. print(matrix);
  127. }
  128. if ( t == 3 ) {
  129. int r = jin.nextInt();
  130. int c = jin.nextInt();
  131. Matrix<String> matrix = new Matrix<String>(r,c);
  132. for ( int i = 0 ; i < r ; ++i ) {
  133. for ( int k = 0 ; k < c ; ++k ) {
  134. matrix.setElementAt(i, k, jin.next());
  135. }
  136. }
  137. print(matrix);
  138. matrix.deleteRow(jin.nextInt());
  139. matrix.deleteRow(jin.nextInt());
  140. print(matrix);
  141. int ir = jin.nextInt();
  142. matrix.insertRow(ir);
  143. for ( int k = 0 ; k < c ; ++k ) {
  144. matrix.setElementAt(ir, k, jin.next());
  145. }
  146. ir = jin.nextInt();
  147. matrix.insertRow(ir);
  148. for ( int k = 0 ; k < c ; ++k ) {
  149. matrix.setElementAt(ir, k, jin.next());
  150. }
  151. print(matrix);
  152. matrix.deleteColumn(jin.nextInt());
  153. matrix.deleteColumn(jin.nextInt());
  154. print(matrix);
  155. int ic = jin.nextInt();
  156. matrix.insertColumn(ir);
  157. for ( int i = 0 ; i < r ; ++i ) {
  158. matrix.setElementAt(i, ic, jin.next());
  159. }
  160. ic = jin.nextInt();
  161. matrix.insertColumn(ic);
  162. for ( int i = 0 ; i < r ; ++i ) {
  163. matrix.setElementAt(i, ic, jin.next());
  164. }
  165. print(matrix);
  166. }
  167. if ( t == 4 ) {
  168. int r = jin.nextInt();
  169. int c = jin.nextInt();
  170. Matrix<Integer> matrix = new Matrix<Integer>(r,c);
  171. for ( int i = 0 ; i < r ; ++i ) {
  172. for ( int k = 0 ; k < c ; ++k ) {
  173. matrix.setElementAt(i, k, jin.nextInt());
  174. }
  175. }
  176. print(matrix);
  177. int nr = jin.nextInt();
  178. int nc = jin.nextInt();
  179. matrix.resize(nr, nc);
  180. print(matrix);
  181. matrix.fill(jin.nextInt());
  182. print(matrix);
  183. }
  184. }
  185.  
  186. public static void print ( Matrix<?> m ) {
  187. int r = m.getNumRows();int c = m.getNumColumns();
  188. System.out.println(" "+r+" x "+c);
  189. System.out.print(" ");
  190. for ( int k = 0 ; k < c ; ++k ) {
  191. System.out.print(k+" ");
  192. }
  193. System.out.println();
  194. System.out.print(" ");
  195. for ( int k = 0 ; k < c ; ++k ) {
  196. System.out.print("-----");
  197. }
  198. System.out.println();
  199. for ( int i = 0 ; i < r ; ++i ) {
  200. System.out.print(i+"|");
  201. for ( int k = 0 ; k < c ; ++k ) {
  202. if ( k > 0 ) System.out.print(" ");
  203. System.out.print(m.getElementAt(i, k));
  204. }
  205. System.out.println();
  206. }
  207. System.out.println();
  208. }
  209.  
  210. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement