【问题标题】:how to add value from an array into a vector如何将数组中的值添加到向量中
【发布时间】:2010-07-12 22:35:18
【问题描述】:

我试图一次将一个值从数组存储到向量中,因此向量应该动态增加其大小。在我的应用程序中,当我们单击开始按钮时,数组中的值会转到另一个页面,获取它的位置,然后显示,但是我试图将该值添加到向量中并将其保存在黑莓的持久内存中,我只能看到最后一个已添加到向量中,但我想要向量将我发送到另一页的所有值逐一添加,这是代码,任何人都可以帮助我

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;

这是我每次单击下一步按钮时发送到另一页的值,所以我试图将值存储到向量中,每次发送一个值时,向量只存储最新的值,nt整个价值观//

【问题讨论】:

    标签: java blackberry


    【解决方案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 时,它都会获取持久对象的值并检查它是否已被初始化。如果尚未初始化,则初始化为空 Vector。然后它向向量添加一个问题并提交更改。

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

    【讨论】:

      【解决方案2】:

      我无法理解您的问题的主体。但这里有一些简单的代码来说明如何向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

      【讨论】:

      • 黑莓不支持 ArrayList。
      • 这听起来像是一个特定的原因。 (啊!!)
      • 我几乎每天在工作中都必须使用 Blackberry API,而且我经常发现自己说“啊!!!” ;)
      • 戴夫约翰斯顿爵士,我已经发布了我的答案,你能帮我写代码吗,我想你跟着我的问题。我必须将数组中的每个元素存储到向量中,而不仅仅是最新的元素我正在发送。请帮我写代码先生。
      • 先生,当我首先尝试获取持久对象的内容并将其存储在我面临问题的对象中时。
      【解决方案3】:

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

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2017-06-08
        • 1970-01-01
        • 1970-01-01
        • 2021-02-18
        • 2011-01-10
        • 2021-09-13
        • 2021-12-27
        • 1970-01-01
        • 2013-11-29
        相关资源
        最近更新 更多