list มีหัวข้อคนละชุด งงหละสิ
ถ้ามองก็คล้าย database ครับ(จริง ๆ ก็ทำเพื่อสิ่งนั้น)
คือ ผมมีข้อมูล
A ประกอบไปด้วย A1, A2, A3, - A10
B ประกอบไปด้วย Ba, Bb, Bc, Bd, - Bz
C ประกอบไปด้วย Ca2, Ca4, Ca8, Cb2, Cb4, Cb8
คร่าว ๆ ประมาณนี้
แล้วถ้าผมอยู่ ๆ ต้องการเพิ่ม
D ประกอบไปด้วย ก, ข, ค, ง, - ฮ
แล้วต้องการลบ A กับ B ออกจากระบบ
แล้วต้องการดูว่า ตอนนี้เหลืออะไรอยู่บ้าง เหลืออยู่เท่าไร
แล้วสมมติว่าอนาตค
อาจต้องการ เพิ่มหรือลด บางตัวแปร
อาจต้องการ เพิ่มหรือลด ข้อมูลในบางแปร
จากข้างบนนี้ ปัญหาคือ แล้วผมจะเอาอะไรไปเก็บข้อมูลที่ระบุอะไรไม่ได้ นี้
ไม่รู้อะไรจะมาอะไรจะไป จะทำอย่างไงให้ยืดหยุ่น
กรณี list ข้อมูลไม่ใช่แค่ text
รายละเอียด
...(เดี๋ยวว่างมาเขียนต่อนะ ดู ๆ code กันไปก่อน)
ตัวนี้ คุณ Notto เป็นคนช่วยแปลงให้เข้ากับ java v.1.4 ครับ เนื่องจาก ตอนแรกผมจะใส่
type Generic เป็น Object กับ String
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class BatchListModel {
private Set idSet;
private Map batchDataMap;
public BatchListModel() {
idSet = new HashSet();
batchDataMap = new HashMap();
}
public void putAllStringData(String id, List list) {
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
String item = (String) iterator.next();
putStringData(id, item);
}
}
public void putAllObjectData(String id, List list) {
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
Object item = (Object) iterator.next();
putObjectData(id, item);
}
}
public void putStringData(String id, String obj) {
idSet.add(id);
List objList = (List) batchDataMap.get(id);
if (null == objList) {
objList = new LinkedList();
}
objList.add(obj);
batchDataMap.put(id, objList);
}
public void putObjectData(String id, Object obj) {
idSet.add(id);
List objList = (List) batchDataMap.get(id);
if (null == objList) {
objList = new LinkedList();
}
objList.add(obj);
batchDataMap.put(id, objList);
}
public List getData(String id) {
List objList = (List) batchDataMap.get(id);
return objList;
}
public int getSize(String id) {
int size = 0;
try {
List objList = (List) batchDataMap.get(id);
if (null != objList) {
size = objList.size();
}
} catch (RuntimeException e) {
e.printStackTrace();
}
return size;
}
public Set getId() {
return idSet;
}
public Set getId(String id) {
Set newStrSet = new HashSet();
for (Iterator iterator = getId().iterator(); iterator.hasNext();) {
String str = (String) iterator.next();
if (str.equalsIgnoreCase(id)) {
newStrSet.add(str);
}
}
return newStrSet;
}
public int getIdSize(String id) {
int size = 0;
try {
Set objList = getId(id);
if (null != objList) {
size = objList.size();
}
} catch (RuntimeException e) {
e.printStackTrace();
}
return size;
}
public void removeDataById(String id) {
batchDataMap.remove(id);
}
public void clear() {
this.clearId();
this.clearData();
}
public void clearId() {
idSet.clear();
}
public void clearData() {
batchDataMap.clear();
}
}
ไม่มีความคิดเห็น:
แสดงความคิดเห็น