Метод Capacity () говорит, что у вас есть много элементов, которые может взять Вектор, прежде чем он увеличит свою емкость. Он не говорит о том, что у вас есть много элементов, которые в данный момент находятся в векторе, это то, для чего назначен size (). И в вашем случае это так, поскольку Вектор пуст.
Вы можете указать емкость, указав параметры для конструктора:
Vector v = new Vector(20);
/* This vector will have the starting capacity
of 20 elements, before it has to increase
its capacity */
Vector v = new Vector(10, 5);
/* This vector will have an initial capacity
of 10 elements, and when it overflows the
second parameter tells the vector to increase
its capacity by 5. */
Редактировать
Судя по вашим комментариям к другим постам, у вас в приложении два потока - где один помещает материал в вектор, а другой читает вектор?
Затем вы должны добавить управляющую структуру, чтобы проверить, является ли вектор пустым или нет, прежде чем пытаться получить элементы из него.
Грязный пример:
/* Vector instantiation goes here */
boolean keepRunningFlag = true;
while(keepRunningFlag) {
if (!vector.isEmpty()) {
Object o = vector.remove(vector.size() - 1);
keepRunningFlag = doStuffWithVectorElement(o);
}
}