2017-12-04 5 views
1

ここで配列リストのすべての内容を印刷したforループである:ここでは、AndroidでのArrayList内の単一の値の下でデータのリストを分類(説明を参照)

 for(int i=0;i<arrayList.size();i++){ 
     Log.e(TAG, "## Price \t\t"+arrayList.get(i).getPrice()+"\t\t\t"+arrayList.get(i).getDate()); 
    } 

ログ

の出力であります

12-05 01:07:58.528 25822-25822/finlit.finlit E/ContentValues: ## Price 150 Added On:03/12/2017 12-05 01:07:58.528 25822-25822/finlit.finlit E/ContentValues: ## Price 75 Added On:03/12/2017 12-05 01:07:58.528 25822-25822/finlit.finlit E/ContentValues: ## Price 450 Added On:03/12/2017 12-05 01:07:58.528 25822-25822/finlit.finlit E/ContentValues: ## Price 356 Added On:04/12/2017 12-05 01:07:58.528 25822-25822/finlit.finlit E/ContentValues: ## Price 541 Added On:04/12/2017 12-05 01:07:58.528 25822-25822/finlit.finlit E/ContentValues: ## Price 415 Added On:04/12/2017 12-05 01:07:58.528 25822-25822/finlit.finlit E/ContentValues: ## Price 200 Added On:04/12/2017 12-05 01:07:58.528 25822-25822/finlit.finlit E/ContentValues: ## Price 600 Added On:04/12/2017 12-05 01:07:58.529 25822-25822/finlit.finlit E/ContentValues: ## Price 700 Added On:04/12/2017 12-05 01:07:58.529 25822-25822/finlit.finlit E/ContentValues: ## Price 70 Added On:04/12/2017 12-05 01:07:58.529 25822-25822/finlit.finlit E/ContentValues: ## Price 250 Added On:04/12/2017 12-05 01:07:58.529 25822-25822/finlit.finlit E/ContentValues: ## Price 250 Added On:04/12/2017 12-05 01:07:58.529 25822-25822/finlit.finlit E/ContentValues: ## Price 408 Added On:04/12/2017

日付の下に価格の合計を追加する方法はありますか。たとえば、 ハッシュマップ{日付、価格の総額}です。 詳細を記入してください:指定された日付:03/12/2017総額:150 + 75 + 450 = 675. " したがって、それ以上の日付とそれに対応する価格を分類します。 したがって、ハッシュマップのキー:03/12/2017 :675です。 String関数を使用して抽出した日付と必要なデータを抽出するためにjavaのregexでコードを利用できるのは相当なことです。

+0

このデータが大量の場合は、データベースを使用してこの作業を行う方がよいでしょう。しかし、少量のデータに対しては、ハッシュマップを作成してリストを歩きます。その日付に既に格納されている値に合計をハッシュマップに追加します。ハッシュマップにデータがない場合は、0を使用します。リストの最後に、date-> totalsのハッシュマップがあります –

答えて

0

ハッシュマップ。日付をキーとして保存します。

 Map<String, Integer> map = new HashMap(); 

     for (int i = 0; i < arrayList.size(); i++) { 
      if (map.containsKey(arrayList.get(i).getDate())) { 
       map.put(arrayList.get(i).getDate(), arrayList.get(i).getPrice() + map.get(arrayList.get(i).getDate())); 
      } else { 
       map.put(arrayList.get(i).getDate(), arrayList.get(i).getPrice()); 
      } 
     } 

     // Iterate over Map 
     for (Map.Entry<String, Integer> entry : map.entrySet()) { 
      Log.e(TAG, "## Price \t\t"+entry.getValue()+"\t\t\t"+entry.getKey()); 
     } 
関連する問題