ExpandableArray.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
import java.util.Arrays; public class ExpandableArray { private int[] arr; private int count; public ExpandableArray(int initialSize){ arr = new int[initialSize]; count = 0; } private void expandArray(){ // Create a new array, copy everything. int[] newArr = new int[arr.length * 2]; for (int i = 0; i < arr.length; i++){ newArr[i] = arr[i]; } arr = newArr; } public void add(int i){ if (count == arr.length) expandArray(); arr[count++] = i; //count++; } @Override public String toString(){ return String.join(", ", Arrays.stream(arr) .limit(count) .mapToObj(String::valueOf) .toArray(String[]::new)); } public static void main(String[] args){ ExpandableArray arr = new ExpandableArray(2); arr.add(1); arr.add(2); System.out.println(arr); arr.add(3); System.out.println(arr); } } |