1 33 package smallsql.database; 34 35 40 final class LongLongList { 41 private int size; 42 private long[] data; 43 44 LongLongList(){ 45 this(16); 46 } 47 LongLongList(int initialSize){ 48 data = new long[initialSize*2]; 49 } 50 51 final int size(){ 52 return size; 53 } 54 55 final long get1(int idx){ 56 if (idx >= size) 57 throw new IndexOutOfBoundsException ("Index: "+idx+", Size: "+size); 58 return data[idx << 1]; 59 } 60 61 final long get2(int idx){ 62 if (idx >= size) 63 throw new IndexOutOfBoundsException ("Index: "+idx+", Size: "+size); 64 return data[(idx << 1) +1]; 65 } 66 67 final void add(long value1, long value2){ 68 int size2 = size << 1; 69 if(size2 >= data.length ){ 70 resize(size2); 71 } 72 data[ size2 ] = value1; 73 data[ size2 +1] = value2; 74 size++; 75 } 76 77 final void clear(){ 78 size = 0; 79 } 80 81 private final void resize(int newSize){ 82 long[] dataNew = new long[newSize << 1]; 83 System.arraycopy(data, 0, dataNew, 0, size << 1); 84 data = dataNew; 85 } 86 } 87 | Popular Tags |