Vector

Run Settings
LanguageJava
Language Version
Run Command
class Main { public static void main(String[] args) { Vector<String> v = new Vector<>(); v.pushBack("1"); v.pushBack("2"); v.pushBack("3"); v.pushBack("4"); v.pushBack("5"); v.pushBack("6"); v.pushBack("7"); v.pushBack("8"); v.pushBack("9"); v.pushBack("10"); System.out.println(v.toString()); System.out.println("size: " + v.size()); System.out.println("capacity: " + v.capacity()); for (int i = 0; i < v.size(); i++) { System.out.println(v.get(i)); } v.popBack();v.popBack();v.popBack();v.popBack();v.popBack(); v.popBack();v.popBack();v.popBack();v.popBack(); System.out.println("size: " + v.size()); System.out.println("capacity: " + v.capacity()); } }
public class Vector<T> { private int size = 0; private int capacity = 2; private T[] genericArray = (T[]) new Object[capacity]; public int size() { return size; } public int capacity() { return capacity; } public T get(int n) { return genericArray[n]; } public void pushBack(T data) { if (size >= capacity) { doubleCapacity(); } genericArray[size] = data; size++; } public void popBack() { size--; genericArray[size] = null; if (size * 4 < capacity && capacity > 4) { halveCapacity(); } } private void doubleCapacity() { T[] newArray = (T[]) new Object[2 * capacity]; System.arraycopy(genericArray, 0, newArray, 0, capacity); genericArray = newArray; capacity *= 2; } private void halveCapacity() { T[] newArray = (T[]) new Object[capacity / 2]; System.arraycopy(genericArray, 0, newArray, 0, size); genericArray = newArray; capacity /= 2; } public String toString() { StringBuilder strb = new StringBuilder(); for (int i = 0; i < size; i++) { if (i > 0) { strb.append(','); } strb.append(genericArray[i]); } return strb.toString(); } }
Editor Settings
Theme
Key bindings
Full width
Lines