01/10/2018, 00:47

Cho em hỏi về id tự tăng trong java với

Các bác cho em hỏi e có 1 bài ID tự tăng khi add record mới vào arraylist
thì làm thế nào ạ trong java

anon52681320 viết 02:55 ngày 01/10/2018

Delegate method add và addAll của ArrayLíst bằng class do mình địa nghĩa, đồng thời trong class này có biến id là int(non-thread safe) hoặc AtomicInteger(thread safe). Khi có bất cứ nơi nào calling 2 method trên, em sẽ tự tăng biến này lên.
Nếu sử dụng int thì có thể dùng keyword synchronized trên method hoặc trên biến int, sử dụng AtomicInteger thì không cần thiết.

Nam Ngọc viết 02:48 ngày 01/10/2018

Bác có thể cho e vd đc không ạ

anon52681320 viết 02:48 ngày 01/10/2018

Nghe có vẻ too advanced quá hả??? Delegate là kỹ thuật trong lập trình thay vì gọi trực tiếp method từ 1 class nào đó, thì mình wrapper cái method đó bằng method của mình, thường là cùng tên method, dùng để controll hoặc add thêm các tính năng đối với method này. Tương tự như đề bài:

private int genId = 0;
private List arrayList = new ArrayList();

public synchronized void add(Object o)
arrayList.add(o);
++genId; //Id tự tăng
}

public synchronized void addAll(List collection) {
for(Object o : collection) {
add(o);
}
}

Bài liên quan
0