有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何将数组中的值添加到向量中

我试图将数组中的一个值一次存储到一个向量中,因此向量应该动态地增加其大小。在我的应用程序中,当我们单击“开始”按钮时,数组中的值会转到另一个页面,并在那里获取该值;然后显示,但我试图将该值添加到向量&;将其保存在blackberry的持久内存中,我只能看到最后一个已添加到向量中,但我希望向量逐个添加我发送到另一页的所有值,这是代码,有人能帮我吗

if ( quesNum != null && quesCount < quesNum.length )
{
   Vector data = new Vector();

   data.addElement ( TestScreen.quesNumber + "" );

   synchronized ( curQues )
   {

      curQuesnew = quesNum[quesCount];
      curQues.setContents ( curQuesnew + "" );
      curQues.commit();
   }

   synchronized ( disques )
   {

      System.out.println ( "value is " + data );
      disques.setContents ( data );
      disques.commit();
   }
   synchronized ( disques )
   {
      data = ( Vector ) disques.getContents(); 
   }

   if ( data.contains ( quesNum[quesCount] + "" ) )
   {
      xyz = quesNum[quesCount++];
      System.out.println ( "i shall overcome........." );

   }
   else
   {
      System.out.println ( "hardwork conqures all........." );
      xyz = quesNum[quesCount];
   }
   return xyz;

这是每次单击“下一步”按钮时发送到另一页的值,因此我尝试将值存储到向量中,每次发送一个值时,该向量仅存储最新值,而不是整个值//


共 (3) 个答案

  1. # 1 楼答案

    这将是我最后一次尝试回答你的问题。注意

    这就是您应该如何管理持久向量的方法

    static Vector data;
    
    static PersistentObject disques = 
        PersistentStore.getPersistentObject(0x9e6d76868a999451L);
    }
    
    public static int test() {
        data = (Vector) disques.getContents();
        if (data == null) {
            System.out.println("Disques is empty!!");
            data = new Vector();
            disques.setContents(data);
        } else {
            System.out.println("Disques contains: " + data);
        }
        data.add("This is question " + data.size() + "\n");
        disques.commit();
    }
    

    每次调用test时,它都会获取持久对象的值并检查它是否已初始化。如果尚未初始化,则初始化为空向量。然后向向量添加一个问题,并提交更改

    如果你不明白这一点,我很抱歉,但我不准备花更多的时间试图解释。我绝对不准备花任何时间试图解开你的应用程序变成的随机混乱

  2. # 2 楼答案

    我不完全理解您试图做什么,但我可以看到您每次都在创建一个新的向量

    Vector data = new Vector();
    data.addElement ( TestScreen.quesNumber + "" );
    

    当然data中只有一个元素。我猜disquesPersistentObject吗?因此,首先要做的是获取现有内容(就像您稍后所做的那样):

    synchronized ( disques ) {
        data = ( Vector ) disques.getContents(); 
    }
    

    然后将新内容添加到datacommit将其返回到PersistentObject

  3. # 3 楼答案

    我无法理解你问题的主体。但是这里有一些简单的代码来说明如何向Vector添加值

    Vector v = new Vector();
    v.add("first string");
    v.add("second string");
    System.out.println(v.size());  // outputs "2"
    System.out.println(v.get(0));  // outputs "first string"
    System.out.println(v.get(1));  // outputs "second string"
    

    除非您有使用Vector的特定原因,否则最好使用ArrayList