Java 将对象 [] 数组转换为 vector

标签 java arrays java-me vector

将对象数组转换为 vector 的最佳方法是什么?

JDE < 1.5

public Vector getListElements()
{
  Vector myVector = this.elements;
  return myVector;
}

this.elements 是一个对象[]

谢谢, 雷伊特

我应该澄清我的问题

我的目标平台是黑莓。

不支持集合。 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));

现在,您可能看起来好像在复制数据两次,但事实并非如此。您确实得到了一个小的临时对象(来自 asListList),但这提供了数组的 View 。读取和写入操作不是复制它,而是通过原始数组。

可以扩展 Vector 并戳它的 protected 字段。这将提供一种相对简单的方法,使 Vector 成为数组的 View ,如 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 期间的大部分时间。

关于Java 将对象 [] 数组转换为 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1116636/

相关文章:

java - 如何通过Selenium找到具有随机id属性的元素

javascript - JavaScript 中一长串整数的转换问题

java - 使用 Java 代码的可用 J2ME SDK 有哪些?

blackberry - 直接从usb接口(interface)从黑莓(珍珠)获取gps数据

java - 如何在j2me中使一些文本框彼此相邻

java - RecyclerView在最新版本中无法实例化。 Android Studio 的

java - 为什么这个 python 脚本没有在 java 中执行

java - 如何检测 PNG 图像而不仅仅是 JPG 图像

arrays - Numpy 连接很慢 : any alternative approach?

java - 当我尝试访问多维数组时应用程序崩溃