หน้าเว็บ

วันศุกร์ที่ 7 กันยายน พ.ศ. 2555

Multimap apache commons : java

import org.apache.commons.collections.MultiHashMap;
import org.apache.commons.collections.MultiMap;
...
...
List<User> users = userService.findAllUsers(); //อ่าน users มาจาก database
MultiMap hcodeUsers = new MultiHashMap();

//ตรงนี้คือ organization id 1 ค่า สามารถมี user ได้หลายคน
//ทำการ put map โดยใส่ org id เป็น key และ user เป็น values
for (User user : users) {
    hcodeUsers.put(user.getOrganizationId(), user);
}

//การเรียกใช้
//ใช้ iterator วนลูป ดึง key set ออกมา
Iterator keysIterator = hcodeUsers.keySet().iterator();
while (keysIterator.hasNext()) {//ถ้ายังมี key อยู่ให้ทำ
    Set key = (Set)keysIterator.next();//แปลง key

 
    //ใช้ iterator วนลูป get values จาก key นั้น   
    Iterator valuesIterator = ((Set) hcodeUsers.get(key)).iterator();
    while (valuesIterator.hasNext()) {//ถ้ายังมี value อยู่ให้ทำ
        user = (User) valuesIterator.next();//แปลง user
      
    }
}
...
...

ไม่มีความคิดเห็น:

แสดงความคิดเห็น