Я использовал для написания C++, как этот vectorV [размер] или вектор> , но я не знаю, как записать его в java. Я попытался написать, как этот Vector> x = new Vector> (size), но когда я хочу использовать его как этот x.get (index) .add (новый объект), у него будет исключение ArrayIndexOutOfBoundsEx. Как я могу его решить , помогите мне плз, тх.Как написать вектор в векторе в java
ответ
Дело в том, что вы можете выделить вектор C++, изначально содержащий экземпляры size
, где эти элементы являются пустыми векторами.
auto vectorOfVectors = vector<vector<T>>(10);
cout << vectorOfVectors.size() << endl; // Outputs 10.
Вы не то же самое с Java Vector. Даже если вы построите его с параметром capacity
, все, что вы делаете, запрашивает пробел для того, чтобы многие элементы были зарезервированы в векторе. Размер вектора изначально равен нулю (если вы не вызываете конструктор Vector(Collection<? extends E>)
с непустой коллекцией в качестве параметра).
Vector<Vector<T>> vectorOfVectors = new Vector<>(10);
System.out.println(vectorOfVectors.size()); // Outputs 0.
Если вы хотите выделить вектор с элементами size
, что вам нужно сделать это явно:
Vector<Vector<T>> vectorOfVectors = new Vector<>(size);
for (int i = 0; i < size; ++i) {
vectorOfVectors.add(new Vector<T>());
}
Однако Vector
является сильно устаревшим классом. Вероятно, вы захотите использовать ArrayList
(точно так же).
да! Действительно много! – lxhsb
Если я получу вас правильно, вам нужен вложенный вектор. Вместо этого вы можете использовать вложенные ArrayList
в Java.
ArrayList<ArrayList<Object>> arrayList = new ArrayList<ArrayList<Object>>();
ArrayList<ArrayList<Object>> al1 = new ArrayList<ArrayList<Object>>();
ArrayList<ArrayList<Object>> al2 = new ArrayList<ArrayList<Object>>();
arrayList.add(al1);
arrayList.add(al2);
arrayList.get(0).add(new Object()); // retrieves al1
Сообщите мне, если вам нужно уточнение.
thx много. записывайте вектор в вектор так же! – lxhsb
Пожалуйста, покажите больше своего нерабочего кода. Это поможет, если мы сможем полностью понять, что вы можете делать неправильно. –
Вы * вероятно * не хотите 'Вектор', потому что он сломан и мусор. Используйте 'ArrayList' – Idos
@Idos Не могли бы вы объяснить, что такое« сломанный и мусор »о« Вектор »? –