Advertisement
Guest User

nizaCeli

a guest
Nov 16th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.65 KB | None | 0 0
  1. import java.io.ByteArrayInputStream;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.util.Arrays;
  5. import java.util.Random;
  6. import java.util.Scanner;
  7. class ArrayReader {
  8.  
  9. public static IntegerArray readIntegerArray(InputStream input)
  10. {
  11. Scanner scanner= new Scanner(input);
  12. int n=scanner.nextInt();
  13. int a[]=new int[n];
  14. for(int i=0;i<n;i++)
  15. a[i]=scanner.nextInt();
  16. scanner.close();
  17. return new IntegerArray(a);
  18. }
  19.  
  20. }
  21. final class IntegerArray {
  22.  
  23. private int array[];
  24. public IntegerArray(int a[]) {
  25. array=a.clone();
  26. }
  27. public int length()
  28. {
  29. return array.length;
  30. }
  31. public int getElementAt(int i)
  32. {
  33. return array[i];
  34. }
  35. public int sum()
  36. {
  37. int suma=0;
  38. for(int i=0;i<array.length;i++)
  39. suma+=array[i];
  40. return suma;
  41. }
  42. public double average()
  43. {
  44. return (double)sum()/array.length;
  45. }
  46. public IntegerArray getSorted()
  47. {
  48. int a[];
  49. a=array.clone();
  50. for(int i=0;i<array.length;i++)
  51. {
  52. for (int j=i+1;j<array.length;j++)
  53. {
  54. if(a[i]>a[j])
  55. {
  56. int temp=a[j];
  57. a[j]=a[i];
  58. a[i]=temp;
  59. }
  60. }
  61. }
  62. return new IntegerArray(a);
  63. }
  64. public IntegerArray concat(IntegerArray ia)
  65. {
  66. int nova[] = new int[array.length+ia.length()];
  67. for(int i=0;i<array.length;i++)
  68. nova[i]=array[i];
  69. for(int i=array.length;i<nova.length;i++)
  70. nova[i]=ia.getElementAt(i-array.length);
  71. return new IntegerArray(nova);
  72. }
  73.  
  74. @Override
  75. public boolean equals(Object obj) {
  76. if (this == obj)
  77. return true;
  78. if (obj == null)
  79. return false;
  80. if (getClass() != obj.getClass())
  81. return false;
  82. IntegerArray other = (IntegerArray) obj;
  83. if (!Arrays.equals(array, other.array))
  84. return false;
  85. return true;
  86. }
  87. public String toString()
  88. {
  89. String temp;
  90. temp="[";
  91. for(int i=0;i<array.length-1;i++)
  92. temp+=array[i]+", ";
  93. temp+=array[array.length-1]+"]";
  94. return temp;
  95. }
  96. }
  97.  
  98. public class IntegerArrayTester {
  99.  
  100. public static void main(String[] args) {
  101. Scanner scanner = new Scanner(System.in);
  102. String s = scanner.nextLine();
  103. IntegerArray ia = null;
  104. switch (s) {
  105. case "testSimpleMethods":
  106. ia = new IntegerArray(generateRandomArray(scanner.nextInt()));
  107. testSimpleMethods(ia);
  108. break;
  109. case "testConcat":
  110. testConcat(scanner);
  111. break;
  112. case "testEquals":
  113. testEquals(scanner);
  114. break;
  115. case "testSorting":
  116. testSorting(scanner);
  117. break;
  118. case "testReading":
  119. testReading(new ByteArrayInputStream(scanner.nextLine().getBytes()));
  120. break;
  121. case "testImmutability":
  122. int a[] = generateRandomArray(scanner.nextInt());
  123. ia = new IntegerArray(a);
  124. testSimpleMethods(ia);
  125. testSimpleMethods(ia);
  126. IntegerArray sorted_ia = ia.getSorted();
  127. testSimpleMethods(ia);
  128. testSimpleMethods(sorted_ia);
  129. sorted_ia.getSorted();
  130. testSimpleMethods(sorted_ia);
  131. testSimpleMethods(ia);
  132. a[0] += 2;
  133. testSimpleMethods(ia);
  134. ia = ArrayReader.readIntegerArray(new ByteArrayInputStream(integerArrayToString(ia).getBytes()));
  135. testSimpleMethods(ia);
  136. break;
  137. }
  138. scanner.close();
  139. }
  140.  
  141. static void testReading(InputStream in) {
  142. IntegerArray read = ArrayReader.readIntegerArray(in);
  143. System.out.println(read);
  144. }
  145.  
  146. static void testSorting(Scanner scanner) {
  147. int[] a = readArray(scanner);
  148. IntegerArray ia = new IntegerArray(a);
  149. System.out.println(ia.getSorted());
  150. }
  151.  
  152. static void testEquals(Scanner scanner) {
  153. int[] a = readArray(scanner);
  154. int[] b = readArray(scanner);
  155. int[] c = readArray(scanner);
  156. IntegerArray ia = new IntegerArray(a);
  157. IntegerArray ib = new IntegerArray(b);
  158. IntegerArray ic = new IntegerArray(c);
  159. System.out.println(ia.equals(ib));
  160. System.out.println(ia.equals(ic));
  161. System.out.println(ib.equals(ic));
  162. }
  163.  
  164. static void testConcat(Scanner scanner) {
  165. int[] a = readArray(scanner);
  166. int[] b = readArray(scanner);
  167. IntegerArray array1 = new IntegerArray(a);
  168. IntegerArray array2 = new IntegerArray(b);
  169. IntegerArray concatenated = array1.concat(array2);
  170. System.out.println(concatenated);
  171. }
  172.  
  173. static void testSimpleMethods(IntegerArray ia) {
  174. System.out.print(integerArrayToString(ia));
  175. System.out.println(ia);
  176. System.out.println(ia.sum());
  177. System.out.printf("%.2f\n", ia.average());
  178. }
  179.  
  180.  
  181. static String integerArrayToString(IntegerArray ia) {
  182. StringBuilder sb = new StringBuilder();
  183. sb.append(ia.length()).append('\n');
  184. for (int i = 0; i < ia.length(); ++i)
  185. sb.append(ia.getElementAt(i)).append(' ');
  186. sb.append('\n');
  187. return sb.toString();
  188. }
  189.  
  190. static int[] readArray(Scanner scanner) {
  191. int n = scanner.nextInt();
  192. int[] a = new int[n];
  193. for (int i = 0; i < n; ++i) {
  194. a[i] = scanner.nextInt();
  195. }
  196. return a;
  197. }
  198.  
  199.  
  200. static int[] generateRandomArray(int k) {
  201. Random rnd = new Random(k);
  202. int n = rnd.nextInt(8) + 2;
  203. int a[] = new int[n];
  204. for (int i = 0; i < n; ++i) {
  205. a[i] = rnd.nextInt(20) - 5;
  206. }
  207. return a;
  208. }
  209.  
  210. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement