保存Java中的字符串列表

时间:2010-10-15 11:56:51

标签: java

在我的Java代码中保存一些数据时遇到问题。

我有三种不同的方法可以完成各自的任务。我从Php客户端使用Hessian调用这些方法。我不是一次称这三种方法。每个方法都会创建一些数组(包含字符串,int,float),有时我必须使用我之前的方法在本方法中调用创建的那些数组。

有什么方法可以保存那些数组(不在数据库中),可能是一个列表或数组,它不会刷新内存,除非我说洙..

示例

public class top{
    Method1(){

    String[]  stringA = {some string data} ;

    }

    Method2(){

       for(string data : stringA){
          I use array of stringA from method1 without calling the whole method1. I need that string value to be save untill i flush it out.    
       }

    }

}

这不是一个完整的代码..甚至不是代码。我只想解释这个问题。

请帮助。

感谢。

4 个答案:

答案 0 :(得分:2)

如何将stringA定义为实例变量而不是局部变量?

答案 1 :(得分:1)

您可以将stringA设置为您班级的本地变量。

public class SomeClass {
      private String[] stringA;
      public void method1(){
              stingA = "something";
      }
      public void method2(){
              for(string data : stringA){
                I use array of stringA from method1 which out calling the whole method. I  need that string value to be save untill i flush it out.    
              }
      }

您也可以使用ArrayList而不是数组作为字符串。这将允许您动态增长列表。如果你想“刷新”它,你可以调用clear()方法

 ArrayList<String> myArr = new ArrayList<String>();
 myArr.add("string1");
 myArr.add("string2");
 //clear the ArrayList
 myArr.clear()

答案 2 :(得分:0)

如果你想在方法调用之间记住值,它应该是一个实例(类 等级)变量。如果您的是Web应用程序,则可以使用session变量。

[你的代码不完整,实际上它甚至没有。发布完整代码可帮助有人尝试回答以正确理解问题。]

答案 3 :(得分:0)

我对hessian一无所知,但看起来处理调用的组件是无状态的。 在这种情况下,我同意Nivas的回答。

但是,如果您需要使用存储的额外功能(搜索等)并且需要花费一些硬件资源,您还可以使用具有内存数据库存储的HSQLDB(非常快)。