Страница 1 из 1
Object[] -> Vector
Добавлено: 02 авг 2004, 16:53
Oscar
Есть ли возможность преобразовать Object[] в Vector, кроме как поэлементно?
Добавлено: 02 авг 2004, 18:29
Deady
а чем поэлементно не нравится?
даже если и есть какой-нибудь метод, то по-любому, он поэлементно будет перекидывать, хотя методов таких я не припомню.
Добавлено: 02 авг 2004, 18:41
Oscar
Обратная задача:
============
Vector v=new Vector();
//заполнение Vectora
String[] s=new String[]{};
v.copyInto(s);
============
Подумалось, может есть и Object[]->Vector.
Можно и поэлементно, просто встроенные функции могут быстрее работать, да и выглядеть должно красивее..
Добавлено: 02 авг 2004, 18:53
AiK
метод класса Vector
Код: Выделить всё
public synchronized void copyInto(Object anArray[]) {
System.arraycopy(elementData, 0, anArray, 0, elementCount);
}
Добавлено: 02 авг 2004, 19:40
Oscar
То есть если я разширю Vector примерно так:
Код: Выделить всё
class MyVector extends Vector
{
public synchronized void copyFrom(Object anArray[])
{
System.arraycopy(anArray, 0, elementData, 0, anArray.length());
//elementCount=anArray.length();
}
}
то я получу то, что хотел - да?
Не знаю, есть ли у anArray[] метод length()?
И не уверен, нужна ли закомментированная сторка?
Иначе я ведь protected Object[] elementData не достану!..
Добавлено: 02 авг 2004, 22:54
Deady
ниче не понял... куда копируешь-то? и смысл всего этого?
делай так:
Код: Выделить всё
public class Copy {
public static void copyArray2Vector(Object[] array, Vector vec) {
for (int i=0; i<array.length; i++) {
vec.add(array[i]);
}
}
потом в проге:
Код: Выделить всё
import Copy;
...
String[] s = new String[50];
Vector v = new Vector();
...
Copy.copyArray2Vector(s, v);
...
Добавлено: 02 авг 2004, 23:15
Oscar
Deady, да-да, всё прекрасно. Но ..
думается мне, что System.arraycopy должно работать быстрее, чем for(..)vec.add(..);
Вот просто так чувствую, но доказать не могу ))
Я просто ... в вектор добавляю возможность экспорта Array в него...
А потом:
v.copyInto(s); // - Из Vector в String[]
v.copyFrom(s); // - Из String[] в Vector
Разве не правильно?....
Добавлено: 03 авг 2004, 06:48
Deady
правильно, но у класса Vector внутренний массив хитро зашит... я бы не стал его трогать.
если нужна скорость, используй ArrayList - это тоже что и Vector, но работает быстрее.