2016-01-20 4 views
-3

Итак, я создал интерфейс Deque, но я не уверен, как я собираюсь создать экземпляр моего Deque, я думал использовать ArrayDeque, но я считаю, что ArrayDeque - это еще один интерфейс, и Я пытаюсь использовать свой собственный интерфейс.Создание собственного интерфейса Deque и класса Deque

public interface DequeInterface { 
public void addFront(Object o); 
public void addRead(Object o); 
public Object removeFront(); 
public Object removeRear(); 

} 

public class Deque implements DequeInterface { 

} 
+0

Мне также нужно создать экземпляр этого размера размером 100 –

+1

, а какой вопрос? –

+1

Этот код не будет компилироваться, потому что ваш 'Deque' еще не реализует' DequeInterface.' –

ответ

0

Из комментариев:

Они не требуют конкретных реализаций в методах, только грубый набросок того, что я буду делать.

Предполагая, что вы хотите реализовать с использованием кольцевого буфера (см Wikipedia), вот начало:

public class Deque implements DequeInterface { 
    private Object[] array; 
    private int  frontIndex; 
    private Object[] rearIndex; 
    public Deque() { 
     // Allocate array of 100 
     // Initialize front index and rear index 
    } 
    public void addFront(Object o) { 
     if (array full) { 
      // Increase array size 
     } 
     array[frontIndex--] = o; 
     // Handle frontIndex circling around 
    } 
    public void addRead(Object o) { 
     // TODO 
    } 
    public Object removeFront() { 
     // TODO 
    } 
    public Object removeRear() { 
     // TODO 
    } 
} 

Конечно, что план будет отличаться, если вы решили реализовать с помощью Linked List. Или несколько подмассивов. Или другая реализация.

+0

Как насчет внедрения с использованием массива ArrayDeque максимального размера, который не может увеличиться, я бы использовал 'ArrayDeque deque = new ArrayDeque (100);' –

Смежные вопросы