Specify the correct implementation of dequeue() method of a queue. This queue uses java.util.ArrayList for storing data and the head of the list is treated as the head of the queue. (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: "Object dequeue() {

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

}". Đề quy ước đầu danh sách là đầu hàng đợi, mà dequeue phải gỡ ở đầu, nên với java.util.ArrayList cách đúng là remove(0): nó trả về đối tượng vừa gỡ nên khớp kiểu trả về Object, và phần tử ở chỉ số 0 chính là phần tử vào sớm nhất. "Object dequeue() {

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

}" sai vì chỉ số hợp lệ của ArrayList chỉ từ 0 tới size()-1, truyền size() sẽ ném IndexOutOfBoundsException. "

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

" sai ngay ở chữ ký: hàm void không được trả về null, dequeue không cần tham số đầu vào, và nó còn gỡ ở cuối danh sách. "Object dequeue() {

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

}" sai vì lệnh return trống không biên dịch được trong hàm trả về Object, ngoài ra gỡ phần tử cuối là hành vi của ngăn xếp chứ không phải hàng đợi.

Cùng phần 2

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