Object[] -> Vector
Модератор: Absurd
а чем поэлементно не нравится?
даже если и есть какой-нибудь метод, то по-любому, он поэлементно будет перекидывать, хотя методов таких я не припомню.
даже если и есть какой-нибудь метод, то по-любому, он поэлементно будет перекидывать, хотя методов таких я не припомню.
- Oscar
- Сообщения: 963
- Зарегистрирован: 29 май 2004, 13:44
- Откуда: Мюнхен (рожден в Киеве)
- Контактная информация:
Обратная задача:
============
Vector v=new Vector();
//заполнение Vectora
String[] s=new String[]{};
v.copyInto(s);
============
Подумалось, может есть и Object[]->Vector.
Можно и поэлементно, просто встроенные функции могут быстрее работать, да и выглядеть должно красивее..
============
Vector v=new Vector();
//заполнение Vectora
String[] s=new String[]{};
v.copyInto(s);
============
Подумалось, может есть и Object[]->Vector.
Можно и поэлементно, просто встроенные функции могут быстрее работать, да и выглядеть должно красивее..
метод класса Vector
Код: Выделить всё
public synchronized void copyInto(Object anArray[]) {
System.arraycopy(elementData, 0, anArray, 0, elementCount);
}
Даже самый дурацкий замысел можно воплотить мастерски
- Oscar
- Сообщения: 963
- Зарегистрирован: 29 май 2004, 13:44
- Откуда: Мюнхен (рожден в Киеве)
- Контактная информация:
То есть если я разширю Vector примерно так:
то я получу то, что хотел - да?
Не знаю, есть ли у anArray[] метод length()?
И не уверен, нужна ли закомментированная сторка?
Иначе я ведь protected Object[] elementData не достану!..
Код: Выделить всё
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 не достану!..
ниче не понял... куда копируешь-то? и смысл всего этого?
делай так:
потом в проге:
делай так:
Код: Выделить всё
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);
...
- Oscar
- Сообщения: 963
- Зарегистрирован: 29 май 2004, 13:44
- Откуда: Мюнхен (рожден в Киеве)
- Контактная информация:
Deady, да-да, всё прекрасно. Но ..
думается мне, что System.arraycopy должно работать быстрее, чем for(..)vec.add(..);
Вот просто так чувствую, но доказать не могу ))
Я просто ... в вектор добавляю возможность экспорта Array в него...
А потом:
v.copyInto(s); // - Из Vector в String[]
v.copyFrom(s); // - Из String[] в Vector
Разве не правильно?....
думается мне, что System.arraycopy должно работать быстрее, чем for(..)vec.add(..);
Вот просто так чувствую, но доказать не могу ))
Я просто ... в вектор добавляю возможность экспорта Array в него...
А потом:
v.copyInto(s); // - Из Vector в String[]
v.copyFrom(s); // - Из String[] в Vector
Разве не правильно?....
правильно, но у класса Vector внутренний массив хитро зашит... я бы не стал его трогать.
если нужна скорость, используй ArrayList - это тоже что и Vector, но работает быстрее.
если нужна скорость, используй ArrayList - это тоже что и Vector, но работает быстрее.