Tải bản đầy đủ (.pptx) (36 trang)

Cấu trúc dữ liệu và giải thuật

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.13 MB, 36 trang )

<span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

 <b>CẤU TẠO CỦA LIST, ARRAY LIST</b>

 <b>CƠ CHẾ HOẠT ĐỘNG CỦA LIST, ARRAY LIST</b>

 <b>KHỞI TẠO LIST, ARRAY LIST</b>

 <b>THÊM, XÓA PHẦN TỬ TRONG LIST, ARRAY LIST</b>

 <b>TÌM KIẾM THƠNG TIN TRONG LIST, ARRAY LIST</b>

 <b>DUYỆT CÁC PHẦN TỬ TRONG LIST , ARRAY LISTCÁC THAO TÁC KHÁC TRONG LIST , ARRAY LIST</b>

 <b>ƯU ĐIỂM VÀ NHƯỢC ĐIỂM CỦA ARRAYLIST KHI SO SÁNH VỚI ARRAY</b>

 <b>CÁC THAO TÁC KHÁC TRONG LIST , ARRAY LIST</b>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>CẤU TẠO CỦA LIST, ARRAY LIST</b>

<b>Cấu tạo của List và Array List</b>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

Kết quả

<small>:</small>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<small>Người tham gia giao thơng ý thức cịn kém, ít hiểu biết về pháp luật, sử dụng chất ma túy, rượu bia khi tham giagiao thông, chạy xe quá tốc độ cho phép, phóng nhanh vượt ẩu...là những nguyên nhân dẫn đến tai nạn giao thông.</small>

<i>2.4 Phương thức set<small>:</small></i>

<i>2.3 Phương thức get</i>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

 List cho phép thêm hoặc xóa các phần tử một cách linh hoạt mà không cần phải chỉ định kích thước của danh sách trước.

 Lấy số lượng phần tử trong một danh sách  Cho phép phần tử trùng lặp trong danh sách  Các phần tử được truy cập thông qua chỉ số  Các phần tử có thể được lặp lại và hiển thị

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

 add() - thêm một phần tử vào list

 addAll() - thêm tất cả các phần tử của list này vào list khác  get() - giúp truy cập ngẫu nhiên các phần tử từ list

 tterator() - trả về đối tượng iterator có thể được sử dụng để truy cập tuần tự các phần tử của list

 set() - thay đổi các phần tử của list  remove() - xóa một phần tử khỏi list

 removeAll() - xóa tất cả các phần tử khỏi list

 clear() - xóa tất cả các phần tử khỏi list (hiệu quả hơn removeAll())  size() - trả về độ dài của list

<b>Một số phương thức của List</b>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

Cơ chế hoạt động của ArrayList trong Java:

 Arraylit hoạt động bằng cách sử dụng 1 mảng để lưu trữ phần tử  Khởi tạo Arraylist

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

• add() – thêm một phần tử vào list

• addAll() – thêm tất cả các phần tử của list này vào list khác • get() – giúp truy cập ngẫu nhiên các phần tử từ list

• iterator() – trả về đối tượng lặp có thể được sử dụng để truy cập tuần tự các phần tử của list

• set() – thay đổi các phần tử của list

• remove() – xóa một phần tử ra khỏi list

• removeAll() – xóa tất cả các phần tử ra khỏi list

• clear() – xóa tất cả các phần tử khỏi list (hiệu quả hơn removeAll()) • size() – trả về độ dài của list

• toArray() – chuyển đổi một list thành một mảng

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<b>CÁCH 3: Sử dụng Collectión.ncopies</b>

<i><small>Cú pháp: List<Type> arrays = </small></i><b><small>new</small></b>

<small>ArrayList<>(Collections.nCopies(count, “element”));Output: 5 lần “deft”</small>

<b>CÁCH 4: Khởi tạo từ một collection</b>

<i><small>Cú pháp: List<Type> arrays = new ArrayList<>(collection);</small></i>

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<small>publicclass ArrayListExample {</small>

<small> publicstaticvoid main(String[] args) {</small>

<small> ArrayList<Integer> arrayList = new ArrayList<Integer>();//khởi tạo một đối tượng arrayList</small>

<small> Scanner scanner = new Scanner(System.in);//đọc dữ liệu người dùng nhập vào</small>

<small> int n;</small>

<small> System.out.print("Nhap so phan tu muon them vao: "); n = scanner.nextInt();//nhập 1 giá trị nguyên đầu tiên vào</small>

<small> for (int i = 0; i < n; i++) {</small>

<small> System.out.print("Nhap phan tu thu " + (i + 1) + ": "); int element = scanner.nextInt();</small>

<small> addToArrayList(arrayList, element);//thêm giá trị vừa nhập vào arraylist</small>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<small>import java.util.ArrayList;</small>

<small>import java.util.Scanner;</small>

<small>publicclass ArrayListExample {</small>

<small> publicstaticvoid main(String[] args) {</small>

<small> ArrayList<Integer> arrayList = new ArrayList<Integer>();//khởi tạo một đối tượng arrayList</small>

<small> Scanner scanner = new Scanner(System.in);//đọc dữ liệu người dùng nhập vào</small>

<small> int n;</small>

<small>System.out.print("Danh sach ban dau: " + arrayList); System.out.print("\nNhap gia tri can xoa: ");</small>

<small> int valueToRemove = scanner.nextInt();//nhập giá trị cần xóa</small>

<small> removeFromArrayList(arrayList, valueToRemove);//xóa phần tử vừa nhập ra khỏi arraylist</small>

<small> System.out.println("Danh sach sau khi xoa phan tu " + valueToRemove + ": " + arrayList); }</small>

<small>publicstaticvoid removeFromArrayList(ArrayList<Integer> arrayList, int value) {</small>

<b>Xóa phần tử</b>

Ý tưởng:

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<b>TÌM KIẾM THƠNG TIN TRONG LIST, ARRAY LIST</b>

<small>Để tìm kiếm một phần tử trong ArrayList thì chúng ta có 3 phương pháp tìm kiếm như sau:</small>

 <b>Tìm kiếm trực tiếp phần tử.</b>

Kết quả thu được :

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

 <b>Tìm kiếm vị trí xuất hiện cuối cùng của 1 phần tử trong List.</b>

<b>Kêt quả thu được :</b>

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<b>DUYỆT CÁC PHẦN TỬ TRONG LIST , ARRAY LISTCÁC THAO TÁC KHÁC TRONG LIST , ARRAY LIST</b>

<b>1.Ý tưởng</b>

‒ Để duyệt các phần tử mà người dùng nhập từ bàn phím khỏi List và ArrayList trong Java, chúng ta có thể sử dụng các phương thức như:

forEach và biểu thức lambda. iterator ().

listIterator ().

Vòng lặp for-eachVòng lặp với chỉ số

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

 <b>Boolean removeAll(Collection<?> c)</b>

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

<b>ƯU ĐIỂM VÀ NHƯỢC ĐIỂM CỦA ARRAYLIST KHI SO SÁNH VỚI ARRAY</b>

<small>Kích thước của ArrayList có thể thay đổi tăng hoặc giảm tùy vào số lượng phần tử trong nó.Thêm và xóa phần tử ở bất kì vị trí nào trong mảng một cách nhanh chóng, hiệu quả.</small>

<small>Có nhiều phương thức hỗ trợ các thao tác như removeAll-xóa tất cả, searching-tìm kiếm, iterations-duyệt mảng, retainAll-sửa phần tử,…</small>

<small>Một ArrayList có thể chứa nhiều loại đối tượng như Integer, String, Scanner, hay một đối tượng do người dùng tự khai báo.</small>

 Ưu điểm

<small>Kích thước mảng cố định và khơng thể thay đổi sau khi mảng được tạo.Không thể thêm phần tử sau khi mảng đã đầy.</small>

 Nhược điểm

</div>

×