Example usage for com.google.common.collect Lists newCopyOnWriteArrayList

List of usage examples for com.google.common.collect Lists newCopyOnWriteArrayList

Introduction

In this page you can find the example usage for com.google.common.collect Lists newCopyOnWriteArrayList.

Prototype

@GwtIncompatible("CopyOnWriteArrayList")
public static <E> CopyOnWriteArrayList<E> newCopyOnWriteArrayList(Iterable<? extends E> elements) 

Source Link

Document

Creates a CopyOnWriteArrayList instance containing the given elements.

Usage

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);
    });
}