Blame view
src/mior/model/DynamicArray.java
1.18 KB
1b1e928cc initial import of... |
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
package mior.model; import mcmas.core.MCMChrono; import java.util.ArrayList; import java.util.Arrays; public class DynamicArray { private int[] array; private int length; public DynamicArray() { this.array = new int[1024]; } public void set(int index, int value) { if (index >= array.length) { this.array = Arrays.copyOf(array, index << 1); //nearestPowerOfTwo(index + 1)); } this.length = Math.max(length, index + 1); this.array[index] = value; } public int get(int index) { return this.array[index]; } public int[] toArray() { return Arrays.copyOf(array, length); } private int nearestPowerOfTwo(int n) { final int bitsize = Integer.SIZE; n--; for (int i = 1; i <= bitsize >> 1; i <<= 1) { n = n | (n >> i); } return n + 1; } public static void main(String[] args) { MCMChrono c = new MCMChrono("ArrayList"); c.start(); ArrayList<Integer> a = new ArrayList<Integer>(); for (int i = 0; i < 10000000; i++) { a.add(i); } System.out.println(c.stop()); c.start(); DynamicArray b = new DynamicArray(); for (int i = 0; i < 10000000; i++) { b.set(i, i); } System.out.println(c.stop()); } } |