2014-06-10 116 views
-4

我想緩存arrlist值以便在類中可用,我定義了一個空arrlist,並從一個方法中添加值並最終嘗試獲取該全局值定義arralist值....Java-如何將數據臨時存儲在數組列表中

class Test{ 

    ArrayList list=new ArrayList(); 


    public void addValues(){ 

     list.add("One"); 
     list.add("Two"); 
     list.add("Three"); 
     list.add("Four"); 
     list.add("Five"); 
     getArrlstValues(); 
    } 

    public void getArrlstValues(){ 

     System.out.println("size of cache arralist=" +list.size()); 
     //why this is showing zero size 
    } 

    public static void main(String args[]) { 
    Test obj=new Test(); 
    obj.addValues(); 
} 
} 
+0

我甚至不看問號在您的文章。 – Smutje

+0

@Smutje upated,謝謝 –

+1

你是否知道'ArrayList'值被緩存在你的代碼中。 – Salah

回答

3

在你的代碼中添加值this.list和檢查obj.getArrlstValues(),當這個!= OBJ

所以你永遠不會更新你看的同一個列表!

可以使用this.getArrlstValues()(或只是getArrlstValues())並刪除這一行:

Test obj=new Test() 
+0

那麼我應該怎麼做才能更新並獲得緩存的值呢? –

+0

調用getArrlstValues()而不是obj.getArrlstValues() – BobTheBuilder

+0

很高興我能幫忙:) – BobTheBuilder

0
ArrayList list=new ArrayList(); 
    Test obj=new Test() 

    public void addValues(){ 

     list.add("One");  // working on "this" i.e, the current object 
     list.add("Two");  // still working on this 
     list.add("Three"); 
     list.add("Four"); 
     list.add("Five"); 
     obj.getArrlstValues(); // calling getArrlstValues() on a different object. Just use getArrlstValues(); 
    } 

    public void getArrlstValues(){ 

     System.out.println("size of cache arralist=" +list.size()); 
     //why this is showing zero size --> because for the calling Object i.e, obj, the list is empty 
    } 
相關問題