Advertisement
Guest User

Untitled

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