list转迭代器Iterator

简介: list转迭代器Iterator
List<Map<String, Object>> list = sqlSession.selectList("com.xxx.xxxMapper.execSql", selectParameter);
private Cursor<Map<String, Object>> cursor = new ListCursorAdapter<>(list);
private Iterator<Map<String, Object>> cursorIterator = cursor.iterator();
import org.apache.ibatis.cursor.Cursor;
import org.apache.ibatis.exceptions.PersistenceException;
import org.jetbrains.annotations.NotNull;
import java.util.Iterator;
import java.util.List;
public class ListCursorAdapter<T> implements Cursor<T> {
    private final Iterator<T> iterator;
    private boolean isOpen = true;
    public ListCursorAdapter(List<T> list) {
        this.iterator = list.iterator();
    }
    @Override
    public boolean isOpen() {
        return isOpen;
    }
    @Override
    public boolean isConsumed() {
        return false;
    }
    @Override
    public int getCurrentIndex() {
        return 0;
    }
    public T getCurrentValue() {
        if (!iterator.hasNext()) {
            throw new PersistenceException("Cursor is not on a valid row");
        }
        return iterator.next();
    }
    public boolean next() {
        return iterator.hasNext() && iterator.next() != null;
    }
    @Override
    public void close() {
        isOpen = false;
    }
    @NotNull
    @Override
    public Iterator<T> iterator() {
        return iterator;
    }
}
相关文章
|
4月前
|
存储 Java
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
|
4月前
|
编译器
【Bug记录】list模拟实现const迭代器类
【Bug记录】list模拟实现const迭代器类
|
6月前
|
编译器 C语言 C++
C++ STL中list迭代器的实现
C++ STL中list迭代器的实现
C++ STL中list迭代器的实现
|
7月前
|
C语言 容器
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器(下 )
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器
33 1
|
7月前
|
C语言 计算机视觉
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器(中)
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器
35 1
|
7月前
|
存储 算法 编译器
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器(上)
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器
40 1
|
6月前
|
C++ 容器
【c++】优先级队列|反向迭代器(vector|list)
【c++】优先级队列|反向迭代器(vector|list)
45 0
|
6月前
|
存储 缓存 编译器
【C++进阶】深入STL之list:模拟实现深入理解List与迭代器
【C++进阶】深入STL之list:模拟实现深入理解List与迭代器
48 0
|
7月前
|
存储 编译器 C++
【C++/STL】list(常见接口、模拟实现、反向迭代器、)
【C++/STL】list(常见接口、模拟实现、反向迭代器、)
53 0
|
7月前
|
算法 C++ 容器
【C++进阶(四)】STL大法--list深度剖析&list迭代器问题探讨
【C++进阶(四)】STL大法--list深度剖析&list迭代器问题探讨