2013-11-09 2 views
0

Предположим, мы определили 2d vector на Java. Размер первого измерения составляет 10, а размер второго измерения - 1. Теперь, если мы хотим увеличить размер первого измерения этого 2d vector, что нам делать?Как мы можем увеличить размер 2d-вектора в Java?

Предположим, мы хотим добавить номер 1 в 30-ю ячейку (то есть v1[29][0]=1), но наш векторный размер - 10.

Вот мой код в Java:

Vector [][] v1 = new Vector [10][]; 

for (int i=0 ; i<10; i++) 
    if (i==0) { 
     v1[i]=new Vector[1]; 
    } 
    else 
     v1[i]=v1[0]; 
v1[0][0]=new Vector(1); 
+0

Возможно, это реализация 'java.util.List'? – trashgod

+0

Если вам не нужны массивы, я бы предложил использовать «Список <Список >». В качестве реализации вы можете использовать [Вектор] (http://docs.oracle.com/javase/7/docs/api/java/util/Vector.html). Btw, если ваше второе измерение всегда '1', то достаточно простого массива 1d. – A4L

+0

Спасибо за комментарии, но пока я не получил хорошего ответа. – Chavoosh

ответ

0

Вам необходимо назначить новый, больший массив, например v1 = new Vector[30][].

Учтите, что Vector синхронизирован. Если поточно-безопасная реализация не требуется, рекомендуется использовать ArrayList вместо Vector.

Также убедитесь, что вы понимаете, что вы делаете. Если вам нужно только «добавить число от 1 до 30-й ячейки (т. Е. V1 [30] [0] = 1)», то int v1 = new int[31][] должно быть достаточно, без каких-либо векторов. Кстати, 30-я ячейка - v1[29][0], а не v1[30][0], следите за этой распространенной ошибкой.

+0

Я отредактировал главный пост, спасибо. – Chavoosh

Смежные вопросы