List of usage examples for com.google.common.collect Iterators cycle
public static <T> Iterator<T> cycle(T... elements)
From source file:com.twitter.hbc.core.HttpHosts.java
/** * All httpHosts must start with the http scheme("http:// or https://") *//*from w w w . jav a2s .c om*/ public HttpHosts(Iterable<String> addresses) { Preconditions.checkNotNull(addresses); Preconditions.checkArgument(!Iterables.isEmpty(addresses)); for (String address : addresses) { if (!address.toLowerCase().startsWith(HttpConstants.HTTP_SCHEME + "://") && !address.toLowerCase().startsWith(HttpConstants.HTTPS_SCHEME + "://")) { throw new IllegalArgumentException("Address doesn't have an http scheme: " + address); } } List<String> copy = Lists.newArrayList(addresses); Collections.shuffle(copy); this.hosts = Iterators.cycle(copy); }
From source file:com.addthis.hydra.task.source.DataSourceConstant.java
@Override public void init() { Iterator<Bundle> iter;/* www .j a v a 2 s. co m*/ if (repeat == 0) { iter = bundles.iterator(); } else { iter = Iterators.cycle(bundles); if (repeat > 0) { iter = Iterators.limit(iter, (repeat + 1) * bundles.size()); } } iterator = Iterators.peekingIterator(iter); }
From source file:at.molindo.notify.channel.mail.RoundRobinMailClient.java
private Iterator<IMailClient> newIterator() { return Iterators.cycle(_clients); }
From source file:runtime.intrinsic._zip.java
/** * Optimized version for list pairs.//from www . j ava 2 s .co m */ public static ListValue invoke2(final ListValue listx, final ListValue listy) { final int xsize = listx.size(); final int ysize = listy.size(); if (xsize == 0 || ysize == 0) return PersistentList.EMPTY; final Iterator<?> xiter, yiter; final int size; if (xsize == ysize) { xiter = listx.iterator(); yiter = listy.iterator(); size = xsize; } else { xiter = Iterators.cycle(listx); yiter = Iterators.cycle(listy); size = Math.max(xsize, ysize); } final PersistentList listxy = PersistentList.alloc(size); for (int i = 0; i < size; i++) listxy.updateUnsafe(i, Tuple.from(xiter.next(), yiter.next())); return listxy; }
From source file:com.cubeia.poker.variant.telesina.TelesinaDealerButtonCalculator.java
public int getNextDealerSeat(SortedMap<Integer, PokerPlayer> currentSeatingMap, int currentDealerSeatId, boolean wasHandCancelled) { // no players seated the dealerbutton should not move if (currentSeatingMap.isEmpty()) { return currentDealerSeatId; }/* ww w . j a v a 2 s.c o m*/ // cancelled hand should not move dealerbutton if (wasHandCancelled) { return currentDealerSeatId; } // one player will make never ending loop if (currentSeatingMap.size() == 1) { return currentSeatingMap.firstKey(); } ArrayList<Integer> seatList = new ArrayList<Integer>(currentSeatingMap.keySet()); if (!seatList.contains(currentDealerSeatId)) { seatList.add(currentDealerSeatId); } Collections.sort(seatList); Iterator<Integer> seatIterator = Iterators.cycle(seatList); // wind ahead until int seat = seatIterator.next(); while (seat < currentDealerSeatId) { seat = seatIterator.next(); } return seatIterator.next(); }
From source file:com.blacklocus.jres.Jres.java
public Jres(final List<String> elasticSearchHostOrHosts) { this(new Supplier<String>() { final Iterator<String> cycler = Iterators.cycle(elasticSearchHostOrHosts); @Override//from w w w . j a va 2 s .co m public String get() { return cycler.next(); } }); }
From source file:runtime.intrinsic._mapz.java
public static ListValue invoke2(final ListValue listx, final ListValue listy, final Lambda func) { final int xsize = listx.size(); final int ysize = listy.size(); if (xsize == 0 || ysize == 0) return PersistentList.EMPTY; final Iterator<?> xiter, yiter; final int size; if (xsize == ysize) { xiter = listx.iterator();//from www .j a v a 2 s . co m yiter = listy.iterator(); size = xsize; } else { xiter = Iterators.cycle(listx); yiter = Iterators.cycle(listy); size = Math.max(xsize, ysize); } final PersistentList result = PersistentList.alloc(size); for (int i = 0; i < size; i++) result.updateUnsafe(i, func.apply(Tuple.from(xiter.next(), yiter.next()))); return result; }
From source file:google.registry.testing.DeterministicStringGenerator.java
public DeterministicStringGenerator(@Named("alphabet") String alphabet, Rule rule) { super(alphabet); iterator = Iterators.cycle(charactersOf(alphabet)); this.rule = rule; }
From source file:com.infinities.skyport.vnc.impl.RoundRobinWebsockifyService.java
@Override public synchronized void initialize() throws Exception { for (WebsockifyService service : services) { service.initialize();/*from w w w . ja v a 2 s. c o m*/ } iterator = Iterators.cycle(services); }
From source file:com.mlaskows.quiz.model.entity.Level.java
/** * Returns next unsolved exercise in cycle for specified * id./*from w w w . j a v a2 s. co m*/ * * @param id * previous exercise id * @param forward * search forward if true, backward if false * @return next unsolved exercise */ public Exercise getUnsolvedInCycle(int id, boolean forward) { if (getExercises() == null || getExercises().isEmpty()) { return null; } List<Exercise> exercises = null; if (forward) { exercises = new ArrayList<Exercise>(getExercises()); } else { exercises = Lists.reverse(new ArrayList<Exercise>(getExercises())); } Iterator<Exercise> ie = Iterators.cycle(exercises); int count = 0; boolean isAfterSpecified = false; // Iterate over cycle. while (count <= exercises.size() + id) { Exercise e = ie.next(); /* Search for next unsolved exercise only if * specified by method parameter was reached * or if parameter equals 0. */ if ((isAfterSpecified || id == 0) && !e.isSolved()) { return e; } /* Exercise specified by method parameter is * reached. Now next exercise can be searched. */ if (id == e.getId()) { isAfterSpecified = true; } count++; } return null; }