ajouter le long de la clé et de la liste de tableaux de la valeur à hashmap

Je suis db données de cette façon

userid, les dates

1125,3-05-2013

1125,4-05-2013

1125,5-05-2013

200,23-05-2013

200,24-05-2013

J'ai besoin de les ajouter à hashmap comme hashmap(nom d'utilisateur,date)..

je.e: hashmap(long,arraylist(chaîne de dates)) et les envoyer à l'extrémité avant.

Je veux dire le long de la valeur dans la table de hachage doit être unique, ce qui est une clé de la restauration de la liste de toutes les dates d'un id utilisateur spécifique,

donc, si j'essaie hashmap.get(1125) == i doit obtenir la liste de toutes les dates pour l'utilisateur 1125 comme 3-05-2013,4-05-2013,5-05-2013

alors si j'essaie hashmap.get(200) == i doit obtenir la liste de toutes les dates pour l'utilisateur de 200 comme 23-05-2013,24-05-2013

J'ai essayé de cette façon , mais j'ai toutes les dates pour un seul nom d'utilisateur comme,

users200
dates[3-05-2013, 4-05-2013, 5-05-2013, 23-05-2013, 24-05-2013]

Voici mon code,

//TODO Auto-generated method stub
List<User> myEmpls = new ArrayList<User>();
User User1 = new User();
User1.setEmpcode((long) 1125);
User1.setDate("3-05-2013");
myEmpls.add(User1);
User User2 = new User();
User2.setEmpcode((long) 1125);
User2.setDate("4-05-2013");
myEmpls.add(User2);
User User5 = new User();
User5.setEmpcode((long) 1125);
User5.setDate("5-05-2013");
myEmpls.add(User5);
User User3 = new User();
User3.setEmpcode((long) 200);
User3.setDate("23-05-2013");
myEmpls.add(User3);
User User4 = new User();
User4.setEmpcode((long) 200);
User4.setDate("24-05-2013");
myEmpls.add(User4);
long prevUser=0;
int cnt=1;
long users =0;
ArrayList<ArrayList<String>> lists = new ArrayList<ArrayList<String>>();
HashMap<Long, ArrayList> finalmap =  new HashMap<>();
ArrayList<String> dates = new ArrayList<>();
for(User time : myEmpls)
{
if(prevUser==time.getEmpcode())
{
users = time.getEmpcode();
System.out.println("users"+users);
dates.add(time.getDate());
}
else
{
dates.add(time.getDate());
}
System.out.println("dates"+dates);
finalmap.put(users, lists);
prevUser =  time.getEmpcode();
cnt++;
}

peut quelqu'un m'aider dans ce problème?

  • Si vous êtes autorisé à utiliser Google Goyave, vous pouvez prendre un coup d'oeil à MultiMap.
  • Comment cela aide-OP? Veuillez ellaborate pourquoi MultiMap permettrait d'aider les OP à résoudre son problème...
  • votre problème est que vous n'avez qu'une instance commune de ArrayList là, au lieu de un par de long.
  • Désolé, je n'ai pas eu le temps d'élaborer, d'où pourquoi j'ai posté comme un commentaire et non une réponse.
InformationsquelleAutor user1660325 | 2013-05-29