首页 > 解决方案 > 如何构造 addToFront 方法

问题描述

我有一个实现 IndexedUnsortedList 接口的 IUArrayList 类,并且我编写了一些构造函数,但我需要帮助编写 addToFront 方法。我已经编写了 addToRear 方法并完成了其他一些构造函数,但我不确定如何执行 addToFront。如果您需要查看更多代码,请告诉我,但这个数组列表还使用了一个迭代器,我用 modCount 变量跟踪它。

public class IUArrayList<T> implements IndexedUnsortedList<T> {
private static final int DEFAULT_CAPACITY = 10;
private static final int NOT_FOUND = -1;

private T[] array;
private int rear;
private int modCount;

/** Creates an empty list with default initial capacity */
public IUArrayList() {
    this(DEFAULT_CAPACITY);
}

/** 
 * Creates an empty list with the given initial capacity
 * @param initialCapacity
 */
@SuppressWarnings("unchecked")
public IUArrayList(int initialCapacity) {
    array = (T[])(new Object[initialCapacity]);
    rear = 0;
    modCount = 0;
}

/** Double the capacity of array */
private void expandCapacity() {
    array = Arrays.copyOf(array, array.length*2);
}

@Override
public void addToFront(T element) {
    // TODO 
    
}

@Override
public void addToRear(T element) {
    expandCapacity();
    array[rear] = element;
    rear++;
    modCount++; 
}

下面是它实现的接口。

public interface IndexedUnsortedList<T> extends Iterable<T>
{
/**  
 * Adds the specified element to the front of this list. 
 *
 * @param element the element to be added to the front of this list    
 */
public void addToFront(T element);  

/**  
 * Adds the specified element to the rear of this list. 
 *
 * @param element the element to be added to the rear of this list    
 */
public void addToRear(T element); 

标签: arraylistconstructor

解决方案


如果你使用LinkedList而不是数组。您将能够利用addFirstaddLast方法LinkedList来实现您想要实现的目标。


推荐阅读