我想寻找一个特定位置的列表迭代器来从那里移动一个。
我查了一下,如果收藏中有任何可用的东西,但我无法做到。
下面是我尝试过的实现工作正常,但我想知道有没有更好的方法来做到这一点。
class FileIterator implements ListIterator<String>{
ListIterator<String> iterator = null;
List<String> fileList;
public FileIterator(List<String> fileList) {
this.fileList=fileList;
iterator=fileList.listIterator();
}
@Override
public void add(String data) {
iterator.add(data);
}
@Override
public boolean hasNext() {
return iterator.hasNext();
}
@Override
public boolean hasPrevious() {
return iterator.hasPrevious();
}
@Override
public String next() {
return iterator.next();
}
@Override
public int nextIndex() {
return iterator.nextIndex();
}
@Override
public String previous() {
return iterator.previous();
}
@Override
public int previousIndex() {
return iterator.previousIndex();
}
@Override
public void remove() {
iterator.remove();
}
@Override
public void set(String data) {
iterator.set(data);
}
public boolean seek(String data){
iterator=fileList.listIterator();
while(iterator.hasNext()){
if(iterator.next().equals(data))
return true;
}
//gives the first element by default
iterator=fileList.listIterator();
return false;
}
}
答案 0 :(得分:3)
有
两者都可以结合所需的功能。
public boolean seek(String data){
int index = fileList.indexOf(data);
iterator = fileList.listIterator(index == -1 ? 0 : index);
return index != -1;
}