Video: Web Programming - Computer Science for Business Leaders 2016 2025
Mảng trong Java là tốt đẹp, nhưng họ có một số hạn chế nghiêm trọng. Hãy tưởng tượng rằng bạn lưu trữ tên khách hàng theo một số thứ tự định trước. Mã của bạn chứa một mảng, và mảng có không gian cho 100 tên.
Tên chuỗi [] = new Chuỗi [100]; for (int i = 0; i <100; i ++) {name [i] = new String ();}
Tất cả là tốt cho đến khi, một ngày, số khách hàng 101 xuất hiện. Khi chương trình của bạn chạy, bạn nhập dữ liệu cho khách hàng 101, hy vọng tuyệt vọng rằng mảng với 100 thành phần có thể mở rộng để phù hợp với nhu cầu đang phát triển của bạn.
Không có may mắn như vậy. Mảng không mở rộng. Chương trình của bạn bị treo với một ArrayIndexOutOfBoundsException.
"Trong đời sau của tôi, tôi sẽ tạo ra mảng dài 1 000", bạn nói với chính mình. Và khi cuộc sống kế tiếp của bạn cuộn lại, bạn sẽ làm điều đó.
Tên chuỗi [] = new Chuỗi [1000 ]; (i = 0; i << 1000 ; i ++) {name [i] = new String ();} Nhưng trong đời sau của bạn, một cuộc suy thoái kinh tế xảy ra. Thay vì có 101 khách hàng, bạn chỉ có 3 khách hàng. Bây giờ bạn đang lãng phí không gian cho 1, 000 tên khi không gian cho 3 tên sẽ làm.
Một ngày, một khách hàng hoàn toàn mới xuất hiện. Bởi vì khách hàng của bạn được lưu trữ theo thứ tự (theo thứ tự chữ cái họ, số bằng số An sinh xã hội, bất cứ điều gì), bạn muốn ép khách hàng này vào thành phần chính xác của mảng của bạn. Sự cố là khách hàng này thuộc sớm vào mảng, tại thành phần có chỉ số 7. Điều gì xảy ra sau đó?
Bạn tiếp tục làm điều này cho đến khi bạn đã di chuyển tên trong thành phần 7. Sau đó bạn đặt tên khách hàng mới vào thành phần 7. Điều gì là đau! Chắc chắn, máy tính không phàn nàn. Nhưng khi bạn di chuyển xung quanh tất cả các tên này, bạn lãng phí thời gian xử lý, bạn lãng phí điện năng, và bạn lãng phí tất cả các loại tài nguyên.
"Trong đời sau của tôi, tôi sẽ để lại ba thành phần trống rỗng giữa hai tên. "Và tất nhiên, kinh doanh của bạn mở rộng. Cho đến khi, cuối cùng bạn thấy rằng ba là không đủ.