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.
Vous devez vous connecter pour publier un commentaire.
Faire comme ça... c'est plus simple :
est-ce que vous souhaitez? appelez simplement ce pour chaque ligne, vous recevez
Utiliser quelque chose comme ceci: