この質問は先に質問されました。しかし、それらの回答のいずれかが私の問題を解決しませんでした。誰か助けてください。HashMap.put()キー値が異なっていても、すでに除外されている値をオーバーライドします。
私は2つのハッシュマップを持って、 final HashMap<String,String> dataList = new HashMap<String,String>();
final HashMap<String,HashMap<String,String>> full = new HashMap<String,HashMap<String,String>>();
は、これは私のコードです。
int i=0;
for(DataSnapshot snap : dataSnapshot.getChildren()) {
i++;
String id = "Name "+String.valueOf(i);
strArray.add(snap.child("email").getValue().toString());
String name = snap.child("FirstName").getValue().toString() + " " + snap.child("LastName").getValue();
dataList.put("Name", name);
dataList.put("Email",snap.child("email").getValue().toString());
dataList.put("Mobile", snap.child("Mobile").getValue().toString());
dataList.put("Birthdate", snap.child("birthdate").getValue().toString());
System.out.println("Datalist " + dataList);
full.put(id, dataList);}
私は、持っていることを期待{Name 1 = {Birthdate=2012/02/15, [email protected], Mobile=, Name= },Name 2 = {Birthdate=2012/02/15, Email=xc, Mobile=8524, Name=Sdcc Kkn}}
しかし、それはexcisting値を上書きします。これは私が得た結果です。 {Name 1={Birthdate=2012/02/15, Email=xc, Mobile=8524, Name=Sdcc Kkn}, Name 2={Birthdate=2012/02/15, Email=xc, Mobile=8524, Name=Sdcc Kkn}}
誰か助けてください。さらに詳しい情報が必要な場合はコメントしてください。 ありがとうございます
ループのたびに同じ 'Map'インスタンスを使用しています。毎回 'dataList'の新しい' Map'インスタンスを作成してください。 –
マイクありがとう – Choxmi