当前位置: 首页>>代码示例>>Java>>正文


Java ThreadLocalRandom.nextInt方法代码示例

本文整理汇总了Java中java.util.concurrent.ThreadLocalRandom.nextInt方法的典型用法代码示例。如果您正苦于以下问题:Java ThreadLocalRandom.nextInt方法的具体用法?Java ThreadLocalRandom.nextInt怎么用?Java ThreadLocalRandom.nextInt使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在java.util.concurrent.ThreadLocalRandom的用法示例。


在下文中一共展示了ThreadLocalRandom.nextInt方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: handleDiceRoll

import java.util.concurrent.ThreadLocalRandom; //导入方法依赖的package包/类
private void handleDiceRoll(@NotNull MessageReceivedEvent event, @NotNull List<String> args) {
    int upper = Integer.parseUnsignedInt(args.get(0).substring(2));
    int iterations = 1;
    if (args.size() > 1 && INT_PATTERN.matcher(args.get(1)).find()) {
        iterations = Math.min(12, Integer.parseUnsignedInt(args.get(1)));
    }
    int sIterations = iterations;
    ThreadLocalRandom random = ThreadLocalRandom.current();
    EmbedBuilder builder = MessageUtils.getEmbedBuilder(event.getMessage().getAuthor());
    int sum = 0;
    while (iterations-- != 0) {
        int num = random.nextInt(1, upper + 1);
        sum += num;
        builder.appendField(":game_die: [1," + upper + "]", num + "", true);
    }
    builder.withTitle("Tossed " + sIterations + (sIterations == 1 ? " dice" : " dices"));
    builder.withDescription("Average result: " + (sum / sIterations));

    sendThenDelete(MessageUtils.getMessageBuilder(event.getMessage())
            .withEmbed(builder.build()));
    delete(event.getMessage());
}
 
开发者ID:ViniciusArnhold,项目名称:ProjectAltaria,代码行数:23,代码来源:RandomNumberCommand.java

示例2: chooseIntentions

import java.util.concurrent.ThreadLocalRandom; //导入方法依赖的package包/类
private LinkedList<Action> chooseIntentions(
        MentalState.Desire goal, Set<Action> actionsPossible
) {
    LinkedList<Action> intentions = new LinkedList<>();

    // Ramasse les bijoux avant d'aspirer
    if (actionsPossible.contains(Action.GATHER_JEWELRY))
        intentions.push(Action.GATHER_JEWELRY);

    else if (actionsPossible.contains(Action.VACUUM_DUST))
        intentions.push(Action.VACUUM_DUST);

    else {
        // A random move
        ThreadLocalRandom random = ThreadLocalRandom.current();
        int countPossibleActions = actionsPossible.size();
        int actionNumber = random.nextInt(countPossibleActions);

        intentions.push((Action) (actionsPossible.toArray())[actionNumber]);
    }

    return intentions;
}
 
开发者ID:KevinSeroux,项目名称:AspirobotT-0.1,代码行数:24,代码来源:Robot.java

示例3: destructiveMedianSimple

import java.util.concurrent.ThreadLocalRandom; //导入方法依赖的package包/类
public static double destructiveMedianSimple(double[] array, int from, int until) {
    ThreadLocalRandom random = ThreadLocalRandom.current();
    int count = 0;
    int index = (from + until) >>> 1;
    while (from + 1 < until) {
        double pivot = array[++count > 30 ? random.nextInt(from, until) : (from + until) >>> 1];
        int l = from, r = until - 1;
        while (l <= r) {
            while (array[l] < pivot) ++l;
            while (array[r] > pivot) --r;
            if (l <= r) {
                swap(array, l++, r--);
            }
        }
        if (index <= r) {
            until = r + 1;
        } else if (l <= index) {
            from = l;
        } else {
            break;
        }
    }
    return array[index];
}
 
开发者ID:mbuzdalov,项目名称:non-dominated-sorting,代码行数:25,代码来源:ArrayHelper.java

示例4: populatedQueue

import java.util.concurrent.ThreadLocalRandom; //导入方法依赖的package包/类
/**
 * Returns a new queue of given size containing consecutive
 * Integers 0 ... n - 1, with given capacity range and fairness.
 */
static ArrayBlockingQueue<Integer> populatedQueue(
    int size, int minCapacity, int maxCapacity, boolean fair) {
    ThreadLocalRandom rnd = ThreadLocalRandom.current();
    int capacity = rnd.nextInt(minCapacity, maxCapacity + 1);
    ArrayBlockingQueue<Integer> q = new ArrayBlockingQueue<>(capacity);
    assertTrue(q.isEmpty());
    // shuffle circular array elements so they wrap
    {
        int n = rnd.nextInt(capacity);
        for (int i = 0; i < n; i++) q.add(42);
        for (int i = 0; i < n; i++) q.remove();
    }
    for (int i = 0; i < size; i++)
        assertTrue(q.offer((Integer) i));
    assertEquals(size == 0, q.isEmpty());
    assertEquals(capacity - size, q.remainingCapacity());
    assertEquals(size, q.size());
    if (size > 0)
        assertEquals((Integer) 0, q.peek());
    return q;
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:26,代码来源:ArrayBlockingQueueTest.java

示例5: testToArray

import java.util.concurrent.ThreadLocalRandom; //导入方法依赖的package包/类
/**
 * toArray() and toArray(a) contain all elements in FIFO order
 */
public void testToArray() {
    final ThreadLocalRandom rnd = ThreadLocalRandom.current();
    final int size = rnd.nextInt(6);
    final int capacity = Math.max(1, size + rnd.nextInt(size + 1));
    ArrayBlockingQueue<Integer> q = new ArrayBlockingQueue<>(capacity);
    for (int i = 0; i < size; i++) {
        checkToArray(q);
        q.add(i);
    }
    // Provoke wraparound
    int added = size * 2;
    for (int i = 0; i < added; i++) {
        checkToArray(q);
        assertEquals((Integer) i, q.poll());
        q.add(size + i);
    }
    for (int i = 0; i < size; i++) {
        checkToArray(q);
        assertEquals((Integer) (added + i), q.poll());
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:25,代码来源:ArrayBlockingQueueTest.java

示例6: dealAction

import java.util.concurrent.ThreadLocalRandom; //导入方法依赖的package包/类
public static void dealAction(Player p, Voucher v) {
    int rewardCount = 0;
    Integer maxRewards = v.getMaxReward();
    ThreadLocalRandom rand = ThreadLocalRandom.current();

    while (rewardCount <= maxRewards) {
        for (String rw : v.getRewards().getKeys(false)) {
            List<String> rewards = v.getRewards().getStringList(rw + ".reward");
            int chance = v.getRewards().getInt(rw + ".chance");
            if (rand.nextInt(100) + 1 <= chance) {
                if (rewardCount >= maxRewards) return;
                rewardCount++;

                for (String reward : rewards) {
                    RVRewardEvent rewardEvent = new RVRewardEvent(p, v, reward);
                    Bukkit.getPluginManager().callEvent(rewardEvent);
                }
            }
        }
    }
}
 
开发者ID:Chazmondo,项目名称:RankVouchers,代码行数:22,代码来源:ActionAPI.java

示例7: newBuilderInstance

import java.util.concurrent.ThreadLocalRandom; //导入方法依赖的package包/类
private static Builder newBuilderInstance() {
    ThreadLocalRandom random = ThreadLocalRandom.current();
    return new Builder(UUID.randomUUID().toString(),
            random.nextInt(),
            UUID.randomUUID().toString(),
            Instant.ofEpochMilli(random.nextLong(0, Instant.now().toEpochMilli())));
}
 
开发者ID:richardstartin,项目名称:simdbenchmarks,代码行数:8,代码来源:HashSetContainsBenchmark.java

示例8: randomString

import java.util.concurrent.ThreadLocalRandom; //导入方法依赖的package包/类
/**
 * Génère une chaine de caractère aléatoire d'une longeur comprise dans un intervalle.
 * @param start Taille minimale de la chaine.
 * @param end Taille maximale de la chaine.
 * @return La chaine de caractère aléatoire
 */
protected String randomString(Integer start, Integer end) {
    String characters = "abcdefghijklmnopqrstuvwxyz";
    ThreadLocalRandom random = ThreadLocalRandom.current();
    Integer length = random.nextInt(start, end);
    char[] text = new char[length];
    for (int i = 0; i < length; i++) {
        text[i] = characters.charAt(random.nextInt(characters.length()));
    }
    return text.toString();
}
 
开发者ID:Nonorc,项目名称:saladium,代码行数:17,代码来源:FlatXmlBuilder.java

示例9: randomDate

import java.util.concurrent.ThreadLocalRandom; //导入方法依赖的package包/类
/**
 * Génère une date entre dans l'intervalle d'année spécifier.
 * @param startYear L'année de départ de l'intervalle
 * @param endYear l'année de fin de l'intervalle
 * @return La date généré
 */
protected Date randomDate(Integer startYear, Integer endYear) {
    ThreadLocalRandom random = ThreadLocalRandom.current();
    int month = random.nextInt(1, 12);
    int day = 1;
    if (month == GregorianCalendar.FEBRUARY) {
        day = random.nextInt(1, 28);
    } else if (month == GregorianCalendar.APRIL || month == GregorianCalendar.JUNE || month == GregorianCalendar.SEPTEMBER || month == GregorianCalendar.OCTOBER) {
        day = random.nextInt(1, 30);
    } else {
        day = random.nextInt(1, 31);
    }
    GregorianCalendar gc = new GregorianCalendar(random.nextInt(startYear, endYear), random.nextInt(1, 12), day);
    return gc.getTime();
}
 
开发者ID:Nonorc,项目名称:saladium,代码行数:21,代码来源:FlatXmlBuilder.java

示例10: twoDiceThrows

import java.util.concurrent.ThreadLocalRandom; //导入方法依赖的package包/类
private static IntFunction<Integer> twoDiceThrows() {
    return i -> {
        ThreadLocalRandom random = ThreadLocalRandom.current();
        int firstThrow = random.nextInt(1, 7);
        int secondThrow = random.nextInt(1, 7);
        return firstThrow + secondThrow;
    };
}
 
开发者ID:jinyi233,项目名称:https-github.com-RichardWarburton-java-8-Lambdas-exercises,代码行数:9,代码来源:DiceRolls.java

示例11: randomMetric

import java.util.concurrent.ThreadLocalRandom; //导入方法依赖的package包/类
public static Metric randomMetric(int numMetrics, int numDimensions, int numLabels) {
  ThreadLocalRandom r = ThreadLocalRandom.current();
  int i = r.nextInt(0, numMetrics);
  int[] labs = new int[numDimensions];
  for (int j = 0; j < numDimensions; j++) {
    labs[j] = r.nextInt(0, numLabels);
  }
  return metric(i, labs);
}
 
开发者ID:pinterest,项目名称:yuvi,代码行数:10,代码来源:InvertedIndexTagStoreBenchmark.java

示例12: submitWork

import java.util.concurrent.ThreadLocalRandom; //导入方法依赖的package包/类
public QueryId submitWork(UserClientConnection connection, RunQuery query) {
  ThreadLocalRandom r = ThreadLocalRandom.current();

  // create a new queryid where the first four bytes are a growing time (each new value comes earlier in sequence).  Last 12 bytes are random.
  long time = (int) (System.currentTimeMillis()/1000);
  long p1 = ((Integer.MAX_VALUE - time) << 32) + r.nextInt();
  long p2 = r.nextLong();
  QueryId id = QueryId.newBuilder().setPart1(p1).setPart2(p2).build();
  incrementer.increment(connection.getSession());
  Foreman foreman = new Foreman(bee, bee.getContext(), connection, id, query);
  bee.addNewForeman(foreman);
  return id;
}
 
开发者ID:skhalifa,项目名称:QDrill,代码行数:14,代码来源:UserWorker.java

示例13: testNextIntBoundNonPositive

import java.util.concurrent.ThreadLocalRandom; //导入方法依赖的package包/类
/**
 * nextInt(non-positive) throws IllegalArgumentException
 */
public void testNextIntBoundNonPositive() {
    ThreadLocalRandom rnd = ThreadLocalRandom.current();
    for (int bound : new int[] { 0, -17, Integer.MIN_VALUE }) {
        try {
            rnd.nextInt(bound);
            shouldThrow();
        } catch (IllegalArgumentException success) {}
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:13,代码来源:ThreadLocalRandomTest.java

示例14: shuffle

import java.util.concurrent.ThreadLocalRandom; //导入方法依赖的package包/类
static void shuffle(Object[] keys) {
    ThreadLocalRandom rnd = ThreadLocalRandom.current();
    int size = keys.length;
    for (int i=size; i>1; i--) {
        int r = rnd.nextInt(i);
        Object t = keys[i-1];
        keys[i-1] = keys[r];
        keys[r] = t;
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:11,代码来源:MapCheck.java

示例15: testTraversalEquivalence

import java.util.concurrent.ThreadLocalRandom; //导入方法依赖的package包/类
/**
 * Various ways of traversing a collection yield same elements
 */
public void testTraversalEquivalence() {
    Collection c = impl.emptyCollection();
    ThreadLocalRandom rnd = ThreadLocalRandom.current();
    int n = rnd.nextInt(6);
    for (int i = 0; i < n; i++) c.add(impl.makeElement(i));
    ArrayList iterated = new ArrayList();
    ArrayList iteratedForEachRemaining = new ArrayList();
    ArrayList tryAdvanced = new ArrayList();
    ArrayList spliterated = new ArrayList();
    ArrayList splitonced = new ArrayList();
    ArrayList forEached = new ArrayList();
    ArrayList streamForEached = new ArrayList();
    ConcurrentLinkedQueue parallelStreamForEached = new ConcurrentLinkedQueue();
    ArrayList removeIfed = new ArrayList();
    for (Object x : c) iterated.add(x);
    c.iterator().forEachRemaining(iteratedForEachRemaining::add);
    for (Spliterator s = c.spliterator();
         s.tryAdvance(tryAdvanced::add); ) {}
    c.spliterator().forEachRemaining(spliterated::add);
    {                       // trySplit returns "strict prefix"
        Spliterator s1 = c.spliterator(), s2 = s1.trySplit();
        if (s2 != null) s2.forEachRemaining(splitonced::add);
        s1.forEachRemaining(splitonced::add);
    }
    c.forEach(forEached::add);
    c.stream().forEach(streamForEached::add);
    c.parallelStream().forEach(parallelStreamForEached::add);
    c.removeIf(e -> { removeIfed.add(e); return false; });
    boolean ordered =
        c.spliterator().hasCharacteristics(Spliterator.ORDERED);
    if (c instanceof List || c instanceof Deque)
        assertTrue(ordered);
    HashSet cset = new HashSet(c);
    assertEquals(cset, new HashSet(parallelStreamForEached));
    if (ordered) {
        assertEquals(iterated, iteratedForEachRemaining);
        assertEquals(iterated, tryAdvanced);
        assertEquals(iterated, spliterated);
        assertEquals(iterated, splitonced);
        assertEquals(iterated, forEached);
        assertEquals(iterated, streamForEached);
        assertEquals(iterated, removeIfed);
    } else {
        assertEquals(cset, new HashSet(iterated));
        assertEquals(cset, new HashSet(iteratedForEachRemaining));
        assertEquals(cset, new HashSet(tryAdvanced));
        assertEquals(cset, new HashSet(spliterated));
        assertEquals(cset, new HashSet(splitonced));
        assertEquals(cset, new HashSet(forEached));
        assertEquals(cset, new HashSet(streamForEached));
        assertEquals(cset, new HashSet(removeIfed));
    }
    if (c instanceof Deque) {
        Deque d = (Deque) c;
        ArrayList descending = new ArrayList();
        ArrayList descendingForEachRemaining = new ArrayList();
        for (Iterator it = d.descendingIterator(); it.hasNext(); )
            descending.add(it.next());
        d.descendingIterator().forEachRemaining(
            e -> descendingForEachRemaining.add(e));
        Collections.reverse(descending);
        Collections.reverse(descendingForEachRemaining);
        assertEquals(iterated, descending);
        assertEquals(iterated, descendingForEachRemaining);
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:70,代码来源:Collection8Test.java


注:本文中的java.util.concurrent.ThreadLocalRandom.nextInt方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。