An implementation of List#subList(int, int).
(
final List<E> list, int fromIndex, int toIndex)
| 1155 | |
| 1156 | |
| 1157 | static <E> List<E> subListImpl( |
| 1158 | final List<E> list, int fromIndex, int toIndex) { |
| 1159 | List<E> wrapper; |
| 1160 | if (list instanceof RandomAccess) { |
| 1161 | wrapper = new RandomAccessListWrapper<E>(list) { |
| 1162 | @Override |
| 1163 | public ListIterator<E> listIterator(int index) { |
| 1164 | return backingList.listIterator(index); |
| 1165 | } |
| 1166 | |
| 1167 | private static final long serialVersionUID = 0; |
| 1168 | }; |
| 1169 | } else { |
| 1170 | wrapper = new AbstractListWrapper<E>(list) { |
| 1171 | @Override |
| 1172 | public ListIterator<E> listIterator(int index) { |
| 1173 | return backingList.listIterator(index); |
| 1174 | } |
| 1175 | |
| 1176 | private static final long serialVersionUID = 0; |
| 1177 | }; |
| 1178 | } |
| 1179 | return wrapper.subList(fromIndex, toIndex); |
| 1180 | } |
| 1181 | |
| 1182 | private static class AbstractListWrapper<E> extends AbstractList<E> { |
| 1183 | final List<E> backingList; |
no test coverage detected