arraylist - 如何构造 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);
解决方案
如果你使用LinkedList
而不是数组。您将能够利用addFirst
和addLast
方法LinkedList
来实现您想要实现的目标。
推荐阅读
- python - 我无法遍历数据框,因为该列被读取为字符串
- angular - “可观察”类型缺少“用户”类型的以下属性
- javascript - 可以在同一个元素上添加多个 vue 过渡效果
- r - 如何在 r studio 中绘制带有缺失值的 smoothScatter 图?
- java - IllegalState 无法加载 ApplicationCon
- r - R Plotly添加图像水印
- html - 想要在纯 css 中复制 youtube 的自动播放切换按钮
- sql - SQL 查询应不计首字母,仅计有效更改
- java - 如何获取从可分页 JPA 查询生成的数据总数
- python - 每次切换帧时如何在 tkinter 中重新加载帧?