Hỏi về addAll trong java và android

Chào mọi người,
Mình đang có thắc mắc về java ở phương thức addAll
Thường thì ví dụ mình có 1 class SinhVien với contructor, getter setter.
Khi mình muốn thêm một sinh viên thì mình sẽ dùng mSinhVien.add(new SinhVien(“ten”, “tuoi”, “diaChi”)); và cứ thế, thêm thêm…
Có một số bài android người ta addAll vào nhưng addAll vào adapter. Mình thực sự chưa hiểu phương thức này lắm. Vậy mong anh em chỉ giúp mình vấn đề này với !

addAll là add 1 list các object Sinh Vien đó bạn

2 Likes

Cái tên hàm nói lên tất cả rồi, add là add từng cái, addAll là add hết tất cả :v
Xem ví dụ ở đây: https://www.tutorialspoint.com/java/util/arraylist_addall.htm

1 Like

Tại có cái addAll vaf adapter nên mình chưa hiểu lắm

Bạn post đoạn code đó lên luôn cho người khác dễ giải thích.

https://bitbucket.org/3613/simpletweetask
Nó nằm trong MainActivity, đường dẫn như sau: app/src/main/java/com/example/hoang/Tweet/activity/
, đây bạn, đoạn " tweets.addAll(Tweet.fromJsonArray(response));"

Đó là vì cái class adapter đó có định nghĩa phương thức addAll để add nhiều đối tượng 1 lúc vào adapter thôi. Có gì phải thắc mắc nhỉ. Họ làm được thế vì họ định nghĩa thế, nếu thích họ có thể addMany, addSome, addALotOfItems, addItems, addThings, addList, addBulk,… miễn là họ khai báo và định nghĩa phương thức với tên đó, tùy người lập trình :joy:

2 Likes

Phương thức addAll đó nằm trong Arraylist.class của java mà bạn :frowning:

Uh, thế thì sao nhỉ, đâu có nghĩa class khác không được dùng addAll nữa, không có gì là giới hạn cả

2 Likes

trong adapter ko có addAll, addAll đó gọi từ Arraylist.class và mình chưa hiểu việc addAll vào adapter chứ đâu phải giới hạn gì đâu :(*

Lớp adapter có thể extends ra từ 1 base adapter khác, nên chẳng có gì khó hiểu khi nó không cần định nghĩa addAll mà vẫn dùng được.
Ps: repository của bạn là private nên chẳng ai xem được đâu, ngoài ra hỏi chỗ nào thì post code chỗ đó, đừng đưa cả project làm gì, không ai xem đâu

1 Like

addAll là phương thức có sẵn của List chèn 1 list vào list khác có cùng kiểu, nó không liên quan tới adapter

 ArrayList<Integer> arrList1 = new ArrayList<>();
     
// thêm phần tử vào trong arrList1
arrList1.add(6);
arrList1.add(4);
arrList1.add(9);
     
ArrayList<Integer> arrList2 = new ArrayList<>();
     
// thêm phần tử vào trong arrList2
arrList2.add(11);
arrList2.add(15);
arrList2.add(16);
arrList2.add(19);
     
// thêm các phần tử của arrList1
// vào vị trí số 3 của arrList2
arrList2.addAll(3, arrList1);

sau đó arrList2 sẽ có kết quả là: 11 15 16 6 4 9 19
Nếu hàm addAll chỉ có 1 tham số là list thì nó sẽ mặc định vị trí add và thêm vào list

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?