Я получаю дб данные таким способадобавляя длинный ключ и ArrayList значения HashMap
идентификатор пользователь, даты
1125,3-05-2013
1125,4-05-2013
1125,5-05-2013
200,23-05-2013
200,24-05-2013
Мне нужно добавить их в HashMap, как HashMap (идентификатор пользователя, даты) ..
т.е: HashMap (длинный, ArrayList (строка даты)) и отправить к переднему концу.
Я имею в виду долгое значение в HashMap должно быть уникальным, который является ключом к retrive список всех дат для определенного идентификатора пользователя,
так, если я пытаюсь hashmap.get(1125) == i
должны получить список всех дат для пользователя 1125 как 3 -05-2013,4-05-2013,5-05-2013
тогда, если я пытаюсь hashmap.get(200) == i
должны получить список всех дат для пользователя 200 как 23-05-2013,24-05-2013
Я пробовал этот путь, но я получаю все даты для одного пользователя, например:
users200 даты [3-05-2013, 4-05-2013, 5-05-2013, 23-05-2013, 24-05-2013]
Вот мой код,
// 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++;
}
Может кто-нибудь мне помочь в этом вопросе?
Если вам разрешено использовать Google Guava, вы можете взглянуть на MultiMap. – biziclop
@biziclop: Как это помогает OP? Пожалуйста, подумайте, почему «MultiMap» поможет OP решить свою проблему ... – Aquillo
Ваша проблема в том, что у вас есть только один общий экземпляр ArrayList, а не один на один. –