/** * Drop the first N elements and create a new list. * * @param list the list * @param count element count to drop * @return newly created sublist that drops the first N elements from origin list. null if list is null. */ public static <T> List<T> drop(List<T> list, int count) { if (list == null) { return null; } return list.stream() .skip(count) .collect(Collectors.toList()); }
@Override public Spliterator<T> spliterator() { if (iterable instanceof List) { final List<T> list = (List<T>) iterable; int toSkip = Math.min(list.size(), numberToSkip); return list.subList(toSkip, list.size()).spliterator(); } else { return Streams.stream(iterable).skip(numberToSkip).spliterator(); } } };
private static void testLimit() { System.out.println(); System.out.println("Test limit start"); Collection<String> collection = Arrays.asList("a1", "a2", "a3", "a1"); // Get the first two elements List<String> limit = collection.stream().limit(2).collect(Collectors.toList()); System.out.println("limit = " + limit); // print limit = [a1, a2] // Get two elements from second element List<String> fromTo = collection.stream().skip(1).limit(2).collect(Collectors.toList()); System.out.println("fromTo = " + fromTo); // print fromTo = [a2, a3] // Get the last element String last = collection.stream().skip(collection.size() - 1).findAny().orElse("1"); System.out.println("last = " + last ); // print last = a1 }
private List<HmilyCompensationVO> findByPage(final List<String> zNodePaths, final String rootPath, final int start, final int pageSize) { return zNodePaths.stream() .skip(start) .limit(pageSize) .filter(StringUtils::isNoneBlank) .map(zNodePath -> buildByNodePath(rootPath, zNodePath)) .collect(Collectors.toList()); }
@Override public Spliterator<T> spliterator() { if (iterable instanceof List) { final List<T> list = (List<T>) iterable; int toSkip = Math.min(list.size(), numberToSkip); return list.subList(toSkip, list.size()).spliterator(); } else { return Streams.stream(iterable).skip(numberToSkip).spliterator(); } } };
private static List<ComponentDto> paginateComponents(List<ComponentDto> components, Request wsRequest) { return components.stream().skip(offset(wsRequest.getPage(), wsRequest.getPageSize())) .limit(wsRequest.getPageSize()).collect(toList()); }
@Override public Expr apply(final List<Expr> args) { if (args.size() < 2 || args.size() > 4) { throw new IAE("Function[%s] must have 2 to 4 arguments", name()); } if (args.stream().skip(1).allMatch(Expr::isLiteral)) { return new TimestampFloorExpr(args); } else { return new TimestampFloorDynamicExpr(args); } }
@Override public Expr apply(final List<Expr> args) { if (args.size() < 2 || args.size() > 4) { throw new IAE("Function[%s] must have 2 to 4 arguments", name()); } if (args.stream().skip(1).allMatch(Expr::isLiteral)) { return new TimestampCeilExpr(args); } else { return new TimestampCeilDynamicExpr(args); } }
@Override public Expr apply(final List<Expr> args) { if (args.size() < 3 || args.size() > 4) { throw new IAE("Function[%s] must have 3 to 4 arguments", name()); } if (args.stream().skip(1).allMatch(Expr::isLiteral)) { return new TimestampShiftExpr(args); } else { // Use dynamic impl if any args are non-literal. Don't bother optimizing for the case where period is // literal but step isn't. return new TimestampShiftDynamicExpr(args); } }
@Override public Spliterator<T> spliterator() { if (iterable instanceof List) { final List<T> list = (List<T>) iterable; int toSkip = Math.min(list.size(), numberToSkip); return list.subList(toSkip, list.size()).spliterator(); } else { return Streams.stream(iterable).skip(numberToSkip).spliterator(); } } };
private static List<ProjectQgateAssociationDto> getPaginatedProjects(List<ProjectQgateAssociationDto> projects, Paging paging) { return projects.stream().skip(paging.offset()).limit(paging.pageSize()).collect(MoreCollectors.toList()); }
private void filterByCategory() { ListMultimap<String, String> eventCategoriesByAnalysisUuid = events.stream() .collect(MoreCollectors.index(EventDto::getAnalysisUuid, EventDto::getCategory)); Predicate<SnapshotDto> byCategory = a -> eventCategoriesByAnalysisUuid.get(a.getUuid()).contains(request.getCategory().getLabel()); this.countAnalyses = (int) analyses.stream().filter(byCategory).count(); this.analyses = analyses.stream() .filter(byCategory) .skip(Paging.offset(request.getPage(), request.getPageSize())) .limit(request.getPageSize()) .collect(MoreCollectors.toList()); }
@Override public List<UserInfo> findByUserIds(List<String> userIds) { if (CollectionUtils.isEmpty(userIds)) { return null; } else { ContainerCriteria criteria = query().where(loginIdAttrName).is(userIds.get(0)); userIds.stream().skip(1).forEach(userId -> criteria.or(loginIdAttrName).is(userId)); return ldapTemplate.search(ldapQueryCriteria().and(criteria), ldapUserInfoMapper); } }
public List<Integer> selectUserIdsByQuery(DbSession dbSession, PermissionQuery query) { return mapper(dbSession).selectUserIdsByQuery(query) .stream() // Pagination is done in Java because it's too complex to use SQL pagination in Oracle and MsSQL with the distinct .skip(query.getPageOffset()) .limit(query.getPageSize()) .collect(MoreCollectors.toArrayList()); }
Builder setAnalyses(List<SnapshotDto> analyses) { Stream<SnapshotDto> stream = analyses.stream(); // no filter by category, the pagination can be applied if (request.getCategory() == null) { stream = stream .skip(Paging.offset(request.getPage(), request.getPageSize())) .limit(request.getPageSize()); } this.analyses = stream.collect(MoreCollectors.toList()); this.countAnalyses = analyses.size(); return this; }
private static List<ComponentDto> paginateComponents(List<ComponentDto> components, ComponentTreeRequest wsRequest) { return components.stream() .skip(offset(wsRequest.getPage(), wsRequest.getPageSize())) .limit(wsRequest.getPageSize()) .collect(MoreCollectors.toList(wsRequest.getPageSize())); }
SearchHistoryResult setAnalyses(List<SnapshotDto> analyses) { this.paging = Common.Paging.newBuilder().setPageIndex(page).setPageSize(pageSize).setTotal(analyses.size()).build(); this.analyses = analyses.stream().skip(offset(page, pageSize)).limit(pageSize).collect(MoreCollectors.toList()); return this; }
private SearchResults toSearchResults(SearchRequest request) { userSession.checkLoggedIn(); try (DbSession dbSession = dbClient.openSession(false)) { List<ComponentDto> authorizedFavorites = getAuthorizedFavorites(); Paging paging = Paging.forPageIndex(Integer.parseInt(request.getP())).withPageSize(Integer.parseInt(request.getPs())).andTotal(authorizedFavorites.size()); List<ComponentDto> displayedFavorites = authorizedFavorites.stream() .skip(paging.offset()) .limit(paging.pageSize()) .collect(MoreCollectors.toList()); Map<String, OrganizationDto> organizationsByUuid = getOrganizationsOfComponents(dbSession, displayedFavorites); return new SearchResults(paging, displayedFavorites, organizationsByUuid); } }
private ContainerCriteria ldapQueryCriteria() { ContainerCriteria criteria = query() .searchScope(SearchScope.SUBTREE) .where("objectClass").is(objectClassAttrName); if (memberOf.length > 0 && !StringUtils.isEmpty(memberOf[0])) { ContainerCriteria memberOfFilters = query().where(MEMBER_OF_ATTR_NAME).is(memberOf[0]); Arrays.stream(memberOf).skip(1) .forEach(filter -> memberOfFilters.or(MEMBER_OF_ATTR_NAME).is(filter)); criteria.and(memberOfFilters); } return criteria; }
@Test public void testRingBitSetWithSlightlyLessCapacity() { RingBitSet ringBitSet = new RingBitSet(100); long expectedCardinality = Stream.generate(ThreadLocalRandom.current()::nextBoolean) .limit(1000) .peek(ringBitSet::setNextBit) .skip(900) .mapToInt(b -> b ? 1 : 0) .sum(); assertThat(ringBitSet.cardinality()).isEqualTo((int) expectedCardinality); assertThat(ringBitSet.size()).isEqualTo(128); assertThat(ringBitSet.length()).isEqualTo(100); }