О Бойком использовании.
, вероятно, можно взять то, что Вы нуждаетесь и кросс-компилируете его. Таким образом, если Вам просто нужен пакет потока - просто компилируют это и не берут все.
я делаю то же самое с VM Python. PyMite соответствует на микроконтроллере и не использует всю функциональность.
return new Vector(Arrays.asList(elements));
Теперь может показаться, что вы копируете данные дважды, но это не так. Вы действительно получаете один небольшой временный объект ( List
из asList
), но он обеспечивает представление массива. Вместо его копирования операции чтения и записи выполняются в исходном массиве.
Можно расширить Вектор
и вставить его защищенные
поля. Это дало бы относительно простой способ превратить Vector
в представление массива, как это делает Arrays.asList
. Как вариант, просто копирование данных в поля. Для Java ME это примерно так же хорошо, как и без написания очевидного цикла. Непроверенный код:
return new Vector(0) {{
this.elementData = (Object[])elements.clone();
this.elementCount = this.elementData.length;
}};
Конечно, вам, вероятно, лучше использовать Список
, чем Вектор
. 1. 4 закончил срок службы. Даже 1.5 завершила большую часть своего периода EOSL.
imho ваш единственный жизнеспособный вариант:
public Vector getListElements()
Vector vector = new Vector(this.elements.length);
for (int i = 0; i < this.elements.length; i++) {
vector.add(this.elements[i]);
}
return vector;
}
Упрощенный компаратор, который выполняет в основном то же самое.
final static class ContactsListComparatorByFirstName implements Comparator {
public int compare(Object o1, Object o2) {
// Sticky Entries Implementation
ContactsListObject clo2 = (ContactsListObject) o2;
ContactsListObject clo1 = (ContactsListObject) o1;
if (clo2.getSticky()) return 1;
if (clo1.getSticky()) return -1;
return clo1.get_contactFirstName().compareTo(clo2.get_contactFirstName());
}
}
Использование дженериков и?: Это было бы просто
static final class ContactsListComparatorByFirstName implements Comparator<ContactsListObject> {
public int compare(ContactsListObject clo1, ContactsListObject clo2) {
return clo2.getSticky() ? 1 : // Sticky Entries Implementation
clo1.getSticky() ? -1 :
clo1.get_contactFirstName().compareTo(clo2.get_contactFirstName());
}
}
Но чтобы ответить на ваш вопрос ... (о, я вижу, у Тома уже есть то, что я бы сказал)
In J2ME, you're stuck iterating over the array and add the elements one by one.
Vector v = new Vector();
for (int i = 0; i < this.elements.length; i++) {
v.add(this.elements[i]);
}
Скопируйте элементы массива в Вектор
или
Используйте Arrays.asList (...)
, чтобы вернуть Список
, который не совсем Вектор
, но вам в любом случае следует кодировать интерфейс List
.