Java “我能不能子类?”;标准;arraylist迭代器?
我需要迭代Java “我能不能子类?”;标准;arraylist迭代器?,java,arraylist,iterator,subclass,Java,Arraylist,Iterator,Subclass,我需要迭代ArrayList的所有元素,最后一个除外。所以我想创建这样的迭代器。但是我不知道如何实现整个迭代器,我只需要重写hasNext()方法,所以我想对“标准”迭代器进行子类化。有什么方法可以做到这一点吗?您可以创建一个实现或接口的类,然后重写该方法。您可以创建一个实现或接口的类,然后重写该方法。我认为更好的方法是迭代ArrayList由您自己操作。ArrayList定义了两个方法,可以帮助您完成任务:get(int)和size() 您所要做的一切就是获取ArrayList(使用size(
ArrayList
的所有元素,最后一个除外。所以我想创建这样的迭代器。但是我不知道如何实现整个迭代器,我只需要重写hasNext()
方法,所以我想对“标准”迭代器进行子类化。有什么方法可以做到这一点吗?您可以创建一个实现或接口的类,然后重写该方法。您可以创建一个实现或接口的类,然后重写该方法。我认为更好的方法是迭代ArrayList
由您自己操作。ArrayList
定义了两个方法,可以帮助您完成任务:get(int)
和size()
您所要做的一切就是获取
ArrayList
(使用size()
)中的元素总数,然后使用get()
方法在每个迭代中直接访问每个元素。您的代码如下所示:
for(int i = 0; i < myList.size() - 1; i++){
element = myList.get(i);
//do something
}
for(int i=0;i
现在牢记这一原则,您可以创建自己的类来迭代
ArrayList
我认为最好的方法是自己迭代ArrayList
,而不是覆盖默认的迭代器。ArrayList
定义了两个方法,可以帮助您完成任务:get(int)
和size()
您所要做的一切就是获取
ArrayList
(使用size()
)中的元素总数,然后使用get()
方法在每个迭代中直接访问每个元素。您的代码如下所示:
for(int i = 0; i < myList.size() - 1; i++){
element = myList.get(i);
//do something
}
for(int i=0;i
现在牢记这一原则,您可以创建自己的类来迭代
ArrayList
修改迭代器来执行此遍历,这会很奇怪。显然,要做的事情是按照您的意愿编写“算法”:
public static <T> void eachExceptLast(List<? extends T> list, Operation<T> op) {
Iterator<T> iter = list.iterator();
if (!iter.hasNext()) {
return;
}
T item = iter.next();
while (iter.hasNext()) {
op.run(item);
item = iter.next();
}
}
publicstaticvoid eachExceptLast(List修改迭代器来执行此遍历是很奇怪的。显然要做的事情是按照您的意愿编写“算法”:
public static <T> void eachExceptLast(List<? extends T> list, Operation<T> op) {
Iterator<T> iter = list.iterator();
if (!iter.hasNext()) {
return;
}
T item = iter.next();
while (iter.hasNext()) {
op.run(item);
item = iter.next();
}
}
publicstaticvoid eachExceptLast(列表