将Object数组转换为Vector的最佳方式是什么?
JDE< 1.5
public Vector getListElements() { Vector myVector = this.elements; return myVector; }
this.elements是一个对象[]
谢谢,
rAyt
我应该澄清我的问题
我的目标平台是黑莓.
不支持集合. Array.asList()不是,或者:/
全班
package CustomElements; import net.rim.device.api.ui.component .*; import net.rim.device.api.collection.util.*; import net.rim.device.api.util.*; import java.util.*; public class ContactsList extends SortedReadableList implements KeywordProvider { // Constructor public ContactsList(Vector contacts) { super(new ContactsListComparatorByFirstName()); loadFrom(contacts.elements()); } // Add Element to ContactsSortedReadableList void addElement(Object element) { doAdd(element); } public Vector getListElements() { return new Vector(Collection Vector test = this.getElements(); } // getKeywords public String[] getKeywords(Object element) { return StringUtilities.stringToWords(((Contact)element).get_contactFirstName()); // return StringUtilities.stringToWords(element.toString()); } // Comparator sorting Contact objects by name final static class ContactsListComparatorByFirstName implements Comparator { public int compare(Object o1,Object o2) { // Sticky Entries Implementation if(((ContactsListObject)o2).getSticky()) { return 1; } else if (((ContactsListObject)o1).getSticky()) { return -1; } else { if(((ContactsListObject)o1).get_contactFirstName().compareto(((ContactsListObject)o2).get_contactFirstName()) <0) { return -1; } if(((ContactsListObject)o1).get_contactFirstName().compareto(((ContactsListObject)o2).get_contactFirstName()) >0) { return 1; } else { return 0; } } } } }
解决方法
return new Vector(Arrays.asList(elements));
现在,它可能看起来像是复制数据两次,但是你不是.你得到一个小的临时对象(从asList列表),但是这提供了一个数组的视图.而不是复制它,读写操作将转到原始数组.
可以扩展Vector并戳出其受保护的字段.这将给出一个比较简单的方式,使得Vector成为数组的视图,就像Arrays.asList一样.或者,只需将数据复制到字段中即可.对于Java ME来说,这与在没有编写明显循环的情况下一样好.未验证代码:
return new Vector(0) {{ this.elementData = (Object[])elements.clone(); this.elementCount = this.elementData.length; }};
当然,你可能比一个List比Vector更好. 1.4已完成使用寿命终止期.即使1.5已经完成了EOSL的大部分时间.
原文地址:https://www.jb51.cc/java/124203.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。