Я хочу искать итератор списка в определенном положении, чтобы переместить его оттуда.Как искать конкретный элемент в списке итератор
Я проверил, если в коллекциях ничего нет, но я не смог.
Ниже приведена реализация, которую я пробовал, которая работает отлично, но я хотел бы знать, если есть лучший способ сделать это.
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;
}
}
_ «но я не мог» _ - почему бы и нет? Что случилось? Вы получили исключение? Если это так, выполните полную трассировку стека. –
Я не понимаю, почему вам нужен 'fileList' как переменная экземпляра, и я не понимаю, почему вам нужен ваш' class' вообще - метод полезности (например, '' Iterators.find'' Guava (https : //google.github.io/guava/releases/16.0/api/docs/com/google/common/collect/Iterators.htm). Логика вашего метода совершенно безумна - вызов метода сбрасывает ' FileIterator' и ищет, а не продолжать, и если ничего не найдено, он случайно сбрасывает его до начала! –
@Boris the Spider: Спасибо за утилиту. В отношении с сбросом итератора - его часть функциональности, которую я пытаюсь Кроме того, метод Iterators.find не работает. Если я хочу поискать некоторый n-й элемент, когда у меня есть итератор в позиции n + m. – Praveen