Specify the correct implementation of pop() method of a stack of Integers. This stack uses java.util.ArrayList for storing data and the end of the list is treated as the top of the stack. (Choose the most suitable one)

4 phương ánCó giải thích

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở

Đáp án đúng: "Integer pop() {

Lời giải
if (isEmpty()) return(null);
return((Integer) pool.remove(pool.size()-1));

}". Đỉnh ngăn xếp là cuối danh sách, nên lấy ra phải xoá phần tử ở chỉ số pool.size()-1 rồi trả về chính phần tử vừa xoá; khi ngăn xếp rỗng thì trả null để người gọi biết không có gì lấy, vẫn khớp kiểu trả về Integer đã khai báo. Phương án "Integer pop() {

Lời giải
if (isEmpty()) return;
return((Integer) pool.remove(pool.size()-1));

}" dùng lệnh return trống trong hàm có kiểu trả về nên không biên dịch được. Phương án "

Lời giải
void pop(Integer x) {
  if (isEmpty()) return(null);
  pool.remove(pool.size()-1);
}

" vừa trả giá trị trong hàm void, vừa nhận tham số vô nghĩa, lại không đưa phần tử lấy ra cho người gọi. Phương án "Integer pop() {

Lời giải
if (isEmpty()) return(null);
return(pool.remove(pool.size()));

}" lấy ở chỉ số pool.size(), vượt quá chỉ số hợp lệ cuối cùng là pool.size()-1, nên luôn gây lỗi chỉ số ngoài phạm vi.

Cùng phần 2

Xuất hiện trong 1 bộ đề