Cả hai lớp ArrayList và LinkedList đều được implements từ giao tiếp List và duy trì thứ tự của phần tử được thêm vào. Cả hai lớp này đều là lớp không đồng bộ (non-synchronized). Có vài sự khác nhau giữa ArrayList và LinkedList được đưa ra như trong bảng dưới đây:
Dưới đây là ví dụ đơn giản về việc sử dụng ArrayList và LinkedList trong java import java.util.ArrayList; import java.util.LinkedList; import java.util.List; public class ArraylistAndLinkedListExample { public static void main(String args[]) { List<String> arrayList = new ArrayList<String>(); arrayList.add("Java"); arrayList.add("C++"); arrayList.add("PHP"); arrayList.add("Python"); List<String> linkedList = new LinkedList<String>(); linkedList.add("Hiberante"); linkedList.add("Struts2"); linkedList.add("Spring"); linkedList.add("Mybatis"); System.out.println("arraylist: " + arrayList); System.out.println("linkedlist: " + linkedList); } }
arraylist: [Java, C++, PHP, Python]
Chào mọi ng ! Mình có đọc qua các cách giải thích từ trang nước ngoài nhưng vẫn chưa hiểu, và đã có thành viên hỏi về chủ đề tương tự nhưng mình thấy vẫn chưa đủ. Cái nào nhanh hơn? Hay sử dụng như thế nào để tối ưu nhất giữa ArrayList và List?? Cám ơn mọi ng
Sự khác nhau giữa LinkedList và ArrayList Sự khác nhau lớn nhất giữa ArrayList và LinkedList nằm ở chỗ có cấu trúc dữ liệu khác, nếu bạn hiểu được cấu trúc của 2 ArrayList và LinkedList thì những khác biệt dưới đây sẽ rất dễ hiểu
Khi nào dùng LinkedList và ArrayList LinkedList không được dùng nhiều như ArrayList nhưng có một số trường hợp LinkedList là sự lựa chọn hợp lí hơn ArrayList. Chúng ta nên dùng LinkedList nếu:
2)Ứng dụng thao tác thêm mới, xóa nhiều hơn truy cập dữ liệu. Khi đó thêm mới và xóa không phải thay đổi kích thước mảng nên nhanh hơn ArrayList. 2 Likes
Bạn còn biết List không? Tại mình cần biết hết để lựa chọn cái nào. Cám ơn b
Không so sánh được vì 2 cái này khác nhau, List là một interface, và ArrayList có thể xem là một implement của List. Nếu dùng List (List a = new ArrayList(); ) sẽ có ưu điểm là bạn có thể chuyển đổi ArrayList sang Vector, LinkedList dễ dàng thông qua các method có trong List interface, còn nếu dùng kiểu: ArrayList a = new ArrayList(); thì bạn sẽ khó làm được điều này, bạn sẽ chỉ dùng được những method trong ArrayList. Tóm lại là xem kỹ về interface trong OOP để hiểu phần này dễ dàng hơn. 7 Likes
Sơ ý quá, mình hiểu rồi. Cám ơn b nhiều
Minh_Thong_Truong:
Trong Java List là interface, là giao diện bên ngoài chứ bản thân nó k có gì vì vậy nó không thể tạo ra đối tượng mới. Muốn sử dụng List bạn phải implement nó qua arraylist và linklist. Nếu bạn hỏi List trong C# thì List có thể sử dụng và tạo đối tượng như arraylist. Vì nó là 1 Generic class implement từ IList, ICollection, IEnumerable. Điều đặc biệt quan trọng là nếu bạn dùng List. Bạn không cần ép kiểu trong trường hợp dùng các obj khác nhau như arraylist 1 Like Home Categories FAQ/Guidelines Terms of Service Privacy Policy |