01/10/2018, 00:58
Mọi người giúp em vấn đề về ArrayList trong Java với
Mọi người cho e hỏi giả sử giờ mà em có 1 bài như thế này thì phải xử lý thế nào ?
Lơp cha: có mã sản phầm . Có phương thức nhập xuât. ,Mã , lớp con kế thừa lớp cha , !
Vậy làm sao để dừng nhập khi đã tồn tại mã trong List !
Em cảm ơn !
Bài liên quan
Cụ thể cách cài đặt cụ thể phụ thuộc vào các class mà bạn đã tạo. Nhưng phải đảm bảo được thuật toán trên.
Em có 2 cách để giải quyết chỗ này:
Cách 2 sẽ có độ phức tạp là O(n), còn cách 1 sẽ là O(1), tốc độ nhanh hơn nhiều.
Bổ xung thêm cách 2 của bạn, nếu đã implement equals() thì phải thêm hashcode() nữa . nếu không sẽ sai.
Sẽ là chính xác cho việc phải override lại method hashCode() nếu cái collection mình đang dùng là những hashtable collections, chẳng hạn như HashMap, HashTable hay HashSet.
Khi những collection này add hay put vào một element mới, nó sẽ gọi hashCode của object để sắp xếp vào bộ nhớ trong của nó, và đương nhiên nó cũng sẽ được dùng để lookup giá trị (contains() method), và tiếp tục sử dụng equals để lấy ra chính xác.
Còn đối với ArrayList thì nó chỉ duyệt qua toàn bộ elements trong list và sử dụng method equals để kiểm tra việc so sánh.
Bạn có thể kiểm tra lại lần nữa tại đây. Link here
Cám ơn bạn đã góp ý, việc sử dụng 2 method này cũng cực kỳ quan trọng trong việc sử dụng Collections.