2015-01-26 28 views
5

我想在我的Java的火力點數據庫計算所有的值。但它不工作,我已經看了一些教程這一點,但沒有發現任何Java程序員。計算所有值火力地堡的Java API

這裏是我的數據庫:

Language 
    German 
    Message 
     -Jf6ShYy7niHrqg_x4Tc: "Tomorrow is very windy" 
     -Jf9v0xHAxINUUANrORU: "Today is very windy and rainy" 

這裏是我的代碼,請注意我試圖使用計數最大值行:

Firebase f = new Firebase("https://myapp.firebaseio.com/Language/German/Message/");    
    f.addValueEventListener(new ValueEventListener() { 

     public void onDataChange(DataSnapshot snapshot) { 
      disp_msg = (TextView)findViewById(R.id.display_msg); 
      //disp_msg.setText(snapshot.getValue().toString()); 
      Iterable<DataSnapshot> ds = snapshot.getChildren(); 
      Iterator<DataSnapshot> ids = ds.iterator(); 
      Map<String, Object> newPost = (Map<String, Object>) ids.next().getValue(); 
      String msg = newPost.get("pubMsg").toString(); 
      disp_msg.setText(msg.toString()); 

      //The line below does not work getting the maximum values 
      int maxValueInMap=(Collections.max(newPost.values().toString())); 

     } 

這是我得到的最大功能,從錯誤收藏:

類型集合中的方法max(Collection)不適用於參數(字符串)

有誰知道如何提前解決這個問題在Java中,謝謝。

回答

3

得到它,而我的孩子火力目錄內的工作,找到了火力功能:

  long maxNum = snapshot.getChildrenCount(); 
      int nums = (int)maxNum; 
      disp_msg.setText(msg.toString() + Integer.toString(nums)); 
0

應該是:

int maxValueInMap=(Collections.max(newPost.values())); 

您不小心做了.toString。一個String是不是Collection,因此.max不會進行這項工作。

我可能會建議不過,看是否可以通過限制條款做一個訂單,因爲它可以得到昂貴的一次又一次的運行Collections.max。我看不到一個TOP功能在火力文檔,但是這甚至會更好。