List of usage examples for com.google.common.collect Lists newCopyOnWriteArrayList
@GwtIncompatible("CopyOnWriteArrayList") public static <E> CopyOnWriteArrayList<E> newCopyOnWriteArrayList(Iterable<? extends E> elements)
From source file:pl.llp.aircasting.view.presenter.MeasurementPresenter.java
private CopyOnWriteArrayList<Measurement> prepareFullView() { if (fullView != null) return fullView; Stopwatch stopwatch = new Stopwatch().start(); String sensorName = sensor.getSensorName(); MeasurementStream stream = sessionManager.getMeasurementStream(sensorName); Iterable<Measurement> measurements; if (stream == null) { measurements = newArrayList();//from w w w . j a v a 2s. c o m } else { measurements = stream.getMeasurements(); } ImmutableListMultimap<Long, Measurement> forAveraging = index(measurements, new Function<Measurement, Long>() { @Override public Long apply(Measurement measurement) { return measurement.getSecond() / settingsHelper.getAveragingTime(); } }); Logger.logGraphPerformance("prepareFullView step 1 took " + stopwatch.elapsed(TimeUnit.MILLISECONDS)); ArrayList<Long> times = newArrayList(forAveraging.keySet()); sort(times); Logger.logGraphPerformance("prepareFullView step 2 took " + stopwatch.elapsed(TimeUnit.MILLISECONDS)); List<Measurement> timeboxedMeasurements = newLinkedList(); for (Long time : times) { ImmutableList<Measurement> chunk = forAveraging.get(time); timeboxedMeasurements.add(average(chunk)); } Logger.logGraphPerformance("prepareFullView step 3 took " + stopwatch.elapsed(TimeUnit.MILLISECONDS)); CopyOnWriteArrayList<Measurement> result = Lists.newCopyOnWriteArrayList(timeboxedMeasurements); Logger.logGraphPerformance("prepareFullView step n took " + stopwatch.elapsed(TimeUnit.MILLISECONDS)); fullView = result; return result; }
From source file:org.xlrnet.tibaija.memory.DefaultCalculatorMemory.java
/** * Changes the size of a list variable. If this increases the size, zero elements will be added to the end of the * list; if this decreases the size, elements will be removed starting from the end. The variable does not need to * exist for this command to work.// w ww. jav a2 s .com * * @param listVariable * The variable to which the value should be written. * @param newSize * New size of the list. Must not be decimal and less than zero. */ @Override public void setListVariableSize(@NotNull ListVariable listVariable, int newSize) { checkNotNull(listVariable); Value listValue = listVariableValueMap.get(listVariable); if (listValue == null) listValue = Value.EMPTY_LIST; if (newSize < 0) throw new InvalidDimensionException("Invalid new size: " + newSize, newSize); List<Complex> resizedList; if (newSize == 0) { resizedList = new ArrayList<>(); } else if (newSize < listValue.list().size()) { resizedList = listValue.list().subList(0, newSize); } else { resizedList = Lists.newCopyOnWriteArrayList(listValue.list()); while (resizedList.size() < newSize) { resizedList.add(Complex.ZERO); } } listVariableValueMap.put(listVariable, Value.of(resizedList)); LOGGER.debug("Resized list {} to {} elements", listVariable, newSize); }
From source file:io.druid.query.aggregation.atomcube.AtomCubeQueryRunner.java
private Map<String, Object> computeSet(AtomCubeQuery atomQ) throws InterruptedException { List<PostAggregator> postaggs = atomQ.getPostAggregations() == null ? null : Lists.newCopyOnWriteArrayList(atomQ.getPostAggregations()); final Map<String, Object> results = new HashMap<String, Object>(); if (postaggs != null) { while (!done || !queue.isEmpty()) { Pair<String, ImmutableBitmap> pair = queue.poll(100, TimeUnit.MILLISECONDS); if (pair != null) { results.put(pair.lhs, pair.rhs); debugsb2.append("-- put ").append(pair.lhs).append(" to results, and doCompute\n"); doCompute(results, postaggs); }/*from ww w. ja v a2 s . co m*/ } doCompute(results, postaggs); if (!postaggs.isEmpty()) { log.warn("AtomCube Query's postaggregators did not compute complete."); log.warn("results contains:"); for (String key : results.keySet()) { log.warn("\t" + key); } log.warn("PostAggregators didn't compute:"); for (PostAggregator postagg : postaggs) { log.warn("postagg name:" + postagg.getName()); if (postagg instanceof AtomCubeSetPostAggregator) { for (String field : ((AtomCubeSetPostAggregator) postagg).getFields()) { log.warn("\t field:" + field); } } else if (postagg instanceof AtomCubeSizePostAggregator) { log.warn("\t field:" + ((AtomCubeSizePostAggregator) postagg).getField()); } else if (postagg instanceof AtomCubeRawPostAggregator) { log.warn("\t field:" + ((AtomCubeRawPostAggregator) postagg).getField()); } } log.warn(debugsb2.toString()); } } else { log.warn("AtomCube Query has not been assigned postaggregators."); } log.debug("compute ... done"); return results; }
From source file:io.atomix.cluster.messaging.impl.NettyMessagingService.java
private List<CompletableFuture<Channel>> getChannelPool(Address address) { List<CompletableFuture<Channel>> channelPool = channels.get(address); if (channelPool != null) { return channelPool; }/*w ww .j a va 2s . c o m*/ return channels.computeIfAbsent(address, e -> { List<CompletableFuture<Channel>> defaultList = new ArrayList<>(CHANNEL_POOL_SIZE); for (int i = 0; i < CHANNEL_POOL_SIZE; i++) { defaultList.add(null); } return Lists.newCopyOnWriteArrayList(defaultList); }); }