Danh sách liên kết trong java

     

Trong bài bác này, tôi sẽ chỉ dẫn đến chúng ta tìm hiểu một số loại Class Collection thứ nhất - sẽ là LinkedList (hay còn được gọi là danh sách liên kết)trong Java. Câu chữ của bài bác này sẽ diễn đạt đặc điểm, các phương thức hay được dùng của Collection này. Với mỗi cách làm được liệt kê, tôi sẽ chỉ dẫn một ví dụ đơn giản để cho các bạn nắm bắt được.

Bạn đang xem: Danh sách liên kết trong java

*


*

1. Đặc điểm

LinkedList (Danh sách liên kết) là 1 trong lớp thực thi của danh sách Interface vào Collections Framework yêu cầu nó sẽ sở hữu được một vài đặc điểm và phương thức tương đồng với List. Như đã nói trong bài bác Tổng quan liêu về Collection vào Java, LinkedList là 1 cấu trúc dữ liệu tàng trữ các bộ phận dưới dạng danh sách, các bộ phận trong LinkedList được sắp xếp có sản phẩm công nghệ tự và có thể có quý giá giống nhau.

2. Các thao tác cơ bản trên list liên kết

Tạo bắt đầu mộtdanh sách liên kết.

Để khai báo một list liên kết, chúng ta cần nên import gói thư việnjava.util.LinkedList của Java. Cú pháp import như sau:


// Khai báo LinkedList// thì import gói thư viện java.util.LinkedListimport java.util.LinkedList;public class TênClass // ...

Sau đấy là ví dụ cáchtạo bắt đầu một danh sách links trong Java:

Bài viết này được đăng tại


public static void main(String<> args) // khai báo 1 danh sách liên kết mang tên là linkedList// gồm kiểu là Integer LinkedList linkedList = new LinkedList();

Để hiển thị các phần tử có trongLinkedList, chúng ta có các cáchnhư sau:

Sử dụng vòng lặpforthông thường.


public static void main(String<> args) {// khai báo 1 danh sách liên kết đơn mang tên là linkedList// bao gồm kiểu là Integer LinkedList linkedList = new LinkedList();// thêm các thành phần sử dụng thủ tục add()linkedList.add(1);linkedList.add(0);linkedList.add(3);linkedList.add(9);// áp dụng vòng lặp for// coi xét theo kích thước của linkedList// áp dụng phương thức linkedList.size()// và tiếp đến lấy bộ phận tại vị trí thứ i trải qua hàm get()// tiếp nối hiển thị giá bán trị thành phần đó raSystem.out.println("Các bộ phận có trong linkedList là: ");for (int i = 0; i

Kết quả sau khoản thời gian biên dịch chương trình:

Sử dụng vòng lặpforcải tiếnduyệt theo đối tượng người dùng trong danh sách.


public static void main(String<> args) // khai báo 1 danh sách link đơn có tên là linkedList// có kiểu là Character LinkedList linkedList = new LinkedList();linkedList.add("j");linkedList.add("a");linkedList.add("v");linkedList.add("a");// hiển thị các thành phần có vào linkedList// bằng phương pháp sử dụng vòng lặp for trông nom theo đối tượng// trong những số đó kiểu dữ liệu của trở nên node// đề xuất trùng với kiểu tài liệu của linkedListSystem.out.println("Các phần tử có trong linkedList là: ");for (char node : linkedList) System.out.print(node + " ");

Kết quả sau khi biên dịch chương trình:

Sử dụng Iterator.

Để áp dụng đượcIteratorchúng ta cần phải import gói thư việnjava.util.Iteratorcủa Java


public static void main(String<> args) // khai báo 1 danh sách liên kết đơn mang tên là linkedList// tất cả kiểu là String LinkedList linkedList = new LinkedList();// thêm các phần tử// thực hiện phương thức add()linkedList.add("Rose");linkedList.add("Lavender");linkedList.add("Orchid");linkedList.add("Lily");// khai báo một Iterator có kiểu là StringIterator iterator = linkedList.iterator();// hiển thị các bộ phận có vào linkedList// bằng phương pháp sử dụng IteratorSystem.out.println("Các bộ phận có trong linkedList là: ");while (iterator.hasNext()) System.out.print(iterator.next() + " ");

Kết quả sau khi biên dịch chương trình:

Sử dụng ListIterator.

Để thực hiện đượcListIteratorchúng ta rất cần phải import gói thư việnjava.util.ListIteratorcủa Java.


public static void main(String<> args) // khai báo 1 danh sách link đơn mang tên là linkedList// gồm kiểu là Float LinkedList linkedList = new LinkedList();// thêm những phần tửlinkedList.add(6.35f);linkedList.add(1.0f);linkedList.add(10.24f);linkedList.add(20.17f);ListIterator listIterator = linkedList.listIterator();// hiển thị các thành phần có trong linkedList// bằng phương pháp sử dụng ListIteratorSystem.out.println("Các thành phần có vào linkedList là: ");System.out.println("Duyệt xuôi (từ đầu mang lại cuối danh sách):");while (listIterator.hasNext()) System.out.print(listIterator.next() + " ");System.out.println(" Duyệt ngược (từ cuối quay trở lại đầu danh sách):");while (listIterator.hasPrevious()) System.out.print(listIterator.previous() + " ");

Kết quả sau thời điểm biên dịch chương trình:

Thêm thành phần vào trong danh sách liên kết.

Thêm bộ phận sử dụng phương thức add().


public static void main(String<> args) // khai báo 1 danh sách link đơn mang tên là linkedList// bao gồm kiểu là Integer LinkedList linkedList = new LinkedList();// thêm 4 thành phần (nút) có kiểu IntegerlinkedList.add(6);linkedList.add(1);linkedList.add(10);linkedList.add(20);

Ngoài ra, phương thứcadd()còn có thể chấp nhận được chúng tathêm mớimột thành phần mới vào một vị trí ngẫu nhiên trong danh sách.


Các bạn thấy lấy một ví dụ trên tôi tiến hành thêm vào trong danh sách linkedList một phần tử bắt đầu tại vị trí số3và có mức giá trị là56. Hôm nay chương trình vẫn chèn phần tử có quý giá là56vào địa điểm của thành phần đang bao gồm chỉ số là3trong danh sách ban sơ đó là phần tử20, và sau khoản thời gian chèn thì thành phần này sẽ có chỉ số là4. Kề bên đó, trong lấy ví dụ này, tôi có sử dụng 2 thủ tục đó là addFirst() và addLast(), thủ tục addFirst() vẫn thêm bộ phận vào đầu list và thủ tục addLast() đang thêm phần tử vào cuối danh sách.

Xem thêm: Những Lời Phát Biểu Trong Tiệc Cưới Tại Nhà Hàng Hay Ý Nghĩa Nhất

Kết quả sau khoản thời gian biên dịch chương trình:

Thêm phần tử sử dụng cách tiến hành addAll().

Java cung cấp cho chúng ta phương thứcaddAll()để thêm vớ cảcác bộ phận của một Collection khác vào cuối 1 LinkedList đã tồn tại.Lưu ý:kiểu tài liệu của Collection phải thêm vào cùng LinkedList này cần giống nhau.Ví dụ dưới đây sẽ khởi sinh sản 2 LinkedList đó là linkedList cùng linkedListExistscó thuộc kiểu dữ liệu làString. Phương thứcaddAll()sẽ thêm các phần tử có tronglinkedListvào cuối danh sách linkedListExists.


public static void main(String<> args) // khai báo 1 danh sách links đơn mang tên là linkedListExists // bao gồm kiểu là String LinkedList linkedListExists = new LinkedList();linkedListExists.add("Monday");linkedListExists.add("Tuesday");linkedListExists.add("Wednesday");linkedListExists.add("Thursday");// khai báo 1 danh sách link đơn có tên là linkedList// tất cả kiểu là String LinkedList linkedList = new LinkedList();linkedList.add("Friday");linkedList.add("Saturday");linkedList.add("Sunday");// thêm các thành phần của linkedList// vào cuối của linkedListExistslinkedListExists.addAll(linkedList);System.out.println("Các phần tử có trong linkedListExists là: ");System.out.print(linkedListExists + " ");

Kết quả sau khi biên dịch chương trình:

Truy cập phần tử

Để truy vấn các phần tử (các nút) có trong 1 danh sách liên kết, Java cung cấp cho họ 3 thủ tục đó là get(), getFirst() cùng getLast(). Sau đây họ sẽ mày mò về 3 cách thức này.

Phương thức get().

Công dụng:truy cập đến một trong những phần tử ngẫu nhiên trong LinkedList trải qua chỉ số của phần tử đó.


, trong các số đó index là chỉ số của bộ phận đó vào danh sách links (0 lấy ví dụ

Kết quả sau thời điểm biên dịch chương trình:

Cập nhậtgiá trị của phần tử

Để cập nhật giá trị của thành phần trong LinkedList,Java cung ứng cho chúng ta phương thức set().

Cú pháp:



Cú pháp

Kết quả sau khoản thời gian biên dịch chương trình:

Xóa phần tử

Để xóa thành phần trong LinkedList, Java cung cấp cho họ 4phương thức sẽ là remove(), removeFist(), removeLast() vàremoveAll().Sau đây họ sẽ cùng khám phá về bốn hướng thức này.

Tên phương thứcCông dụng
remove()Phương thức này được áp dụng trong 2 ngôi trường hợp:xóa dựa vàochỉ số của phần tửvàxóa trực tiếp bộ phận đó(không nên biết đến chỉ số của nó).
removeFirst()Xóa thành phần đầu tiên trong danh sách.
removeLast()Xóa thành phần cuối thuộc trong danh sách.

Xem thêm: Viết Về Ngày Sinh Nhật Của Mình, Lời Chúc Sinh Nhật Cho Bản Thân Mình Hay Nhất

removeAll()Xóa những phần tử có trong danh sách này mà cũng luôn có trong 1 Collection không giống (List, Set,...)

Ví dụ dưới đây sẽ tổng hợp bí quyết sử dụng những phương thức này.



bài giải

Kết quả sau thời điểm biên dịch chương trình:

3. Lời kết

Trong bài bác này, tôi đã giới thiệu cho chúng ta đặc điểm, các phương thức hay sử dụng của loại Class Collection đầu tiên - LinkedList. Sang bài sau bọn họ sẽ tiếp tục khám phá 1 loại Class Collection khác đó là ArrayList. Chúng ta theo dõi nhé!