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;
    }
}
相关文章
|
11天前
|
编译器 C语言 C++
C++ STL中list迭代器的实现
C++ STL中list迭代器的实现
C++ STL中list迭代器的实现
|
11天前
|
C++ 容器
【c++】优先级队列|反向迭代器(vector|list)
【c++】优先级队列|反向迭代器(vector|list)
7 0
|
2月前
|
C语言 容器
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器(下 )
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器
11 1
|
2月前
|
C语言 计算机视觉
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器(中)
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器
16 1
|
2月前
|
存储 算法 编译器
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器(上)
从C语言到C++_17(list的模拟实现)list不是原生指针的迭代器
15 1
|
22天前
|
存储 缓存 编译器
【C++进阶】深入STL之list:模拟实现深入理解List与迭代器
【C++进阶】深入STL之list:模拟实现深入理解List与迭代器
13 0
|
2月前
|
存储 编译器 C++
【C++/STL】list(常见接口、模拟实现、反向迭代器、)
【C++/STL】list(常见接口、模拟实现、反向迭代器、)
11 0
|
2月前
|
算法 C++ 容器
【C++进阶(四)】STL大法--list深度剖析&list迭代器问题探讨
【C++进阶(四)】STL大法--list深度剖析&list迭代器问题探讨
|
10月前
|
编译器 C语言 C++
C++实践模拟(vector & list,反向迭代器)
C++实践模拟(vector & list,反向迭代器)
51 0
|
9月前
|
存储 编译器 C++
C++:关于模拟实现vector和list中迭代器模块的理解
C++:关于模拟实现vector和list中迭代器模块的理解