Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.09 KB | None | 0 0
  1. public class Numbers {
  2. public static final int DEFAULT_CAPACITY = 10;
  3. private int[] numbers;
  4. private int currentPos = 0;
  5.  
  6. public Numbers(){
  7. this(DEFAULT_CAPACITY);
  8. }
  9. public Numbers(int capacity){
  10. numbers = new int[capacity];
  11. }
  12.  
  13. //if is full we leave otherwise insert number
  14. public void add(int num){
  15. if(isFull()) return;
  16. insertNumInPos(num, currentPos);
  17. incrementPos();
  18. }
  19.  
  20. public String toString(){
  21. StringBuilder s = new StringBuilder("[");
  22. for(int i =0; i < size(); ++i){
  23. s.append(getNumber(i));
  24. if(i < size() - 1)
  25. s.append(",");
  26. }
  27. s.append("]");
  28. return s.toString();
  29. }
  30.  
  31. public int getNumber(int pos){
  32. return numbers[pos];
  33. }
  34.  
  35. public int size(){
  36. return currentPos;
  37. }
  38.  
  39. public int capacity(){
  40. return numbers.length;
  41. }
  42.  
  43. private void insertNumInPos(int num, int pos){
  44. numbers[pos] = num;
  45. }
  46.  
  47. private void incrementPos(){
  48. currentPos++;
  49. }
  50.  
  51. public boolean isFull(){
  52. return currentPos == numbers.length;
  53. }
  54.  
  55. public boolean isEmpty(){
  56. return currentPos == 0;
  57. }
  58. }
  59.  
  60.  
  61. //testclass with main method
  62. import java.util.Random;
  63. public class ArrayMergeDemo{
  64. public static void main(String[] args){
  65. //nums1 intialized with twice the capacity of nums2
  66. Numbers nums1 = new Numbers(20),nums2 = new Numbers();
  67. //lets fill them with random numbers just from 0 to nums2 capacity
  68. Random randomNumsGenerator = new Random();
  69. for(int i = 0; i < nums2.capacity(); ++i){
  70. nums1.add(randomNumsGenerator.nextInt(10));
  71. nums2.add(randomNumsGenerator.nextInt(10));
  72. }
  73.  
  74. System.out.println("contents of nums1 : " + nums1);
  75. System.out.println("contents of nums2 : " + nums2);
  76. if(arraysCanBeMerged(nums1,nums2)){
  77. merge(nums1,nums2);
  78. System.out.println("contents of nums1 after merge : " + nums1);
  79. }
  80. }
  81.  
  82. public static boolean arraysCanBeMerged(Numbers to, Numbers from){
  83. return to.capacity() >= (to.size() + from.size());
  84. }
  85.  
  86. public static Numbers merge(Numbers to, Numbers from){
  87. for(int num = 0; num < from.size(); ++num)
  88. to.add(from.getNumber(num));
  89. return to;
  90. }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement