Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #33925
| From | Sebastian <news@seyweiler.dyndns.org> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Random permutations [was Re: Libraries for sysadmins?] |
| Date | 2016-03-05 00:56 +0100 |
| Organization | albasani.net |
| Message-ID | <nbd7c3$3jp$1@news.albasani.net> (permalink) |
| References | <2cec6af2-9636-4a2a-8849-b01286c0814c@googlegroups.com> <sysadmins-20160304161143@ram.dialup.fu-berlin.de> <djttl0Fct5hU1@mid.individual.net> <dju62bFf4ouU1@mid.individual.net> <concise-20160304210431@ram.dialup.fu-berlin.de> |
Am 04.03.2016 21:13, schrieb Stefan Ram:
[snip]
>
> I like to investigate how to concisely write a program to print
> numbers simulating the German lotto »6 from 49«, where six
> numbers are chosen from 1..49 in different programming languages.
>
> Here is my Java version:
>
> public class Main
> { public static void main( final java.lang.String[] args )
> { final java.util.List<java.lang.Integer> numbers =
> java.util.stream.IntStream.rangeClosed( 1, 49 ).boxed().
> collect( java.util.stream.Collectors.toList() );
> java.util.Collections.shuffle( numbers );
> java.lang.System.out.println( numbers.subList( 0, 6 ) ); }}
>
[snip]
This is good if you need about as many elements in the result as are in
the range. But if the range is large and you need only a few elements,
it may be better to generate numbers (without duplicates), like this:
new Random().ints(1, 50).distinct().limit(6)
[Side note, not relevant to the lotto example: IntStream#distinct() uses
a LinkedHashSet internally, so that the order is maintained, as required
by the java docs for Stream#distinct().]
-- Sebastian
PS: Whoever taught you to qualify the name of classes from java.lang?
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Libraries for sysadmins? Elena <egarrulo@gmail.com> - 2016-03-04 03:33 -0800
Re: Libraries for sysadmins? Martin Gregorie <martin@address-in-sig.invalid> - 2016-03-04 11:44 +0000
Re: Libraries for sysadmins? egarrulo <egarrulo@gmail.com> - 2016-03-04 12:56 +0100
Re: Libraries for sysadmins? Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-03-04 07:43 -0500
Re: Libraries for sysadmins? Robert Klemme <shortcutter@googlemail.com> - 2016-03-04 18:06 +0100
Re: Libraries for sysadmins? egarrulo <egarrulo@gmail.com> - 2016-03-04 20:30 +0100
Random permutations [was Re: Libraries for sysadmins?] Sebastian <news@seyweiler.dyndns.org> - 2016-03-05 00:56 +0100
Re: Random permutations [was Re: Libraries for sysadmins?] Robert Klemme <shortcutter@googlemail.com> - 2016-03-05 12:11 +0100
Re: Random permutations [was Re: Libraries for sysadmins?] Sebastian <news@seyweiler.dyndns.org> - 2016-03-05 16:41 +0100
Re: Random permutations [was Re: Libraries for sysadmins?] Brixomatic <brixomatic@yahoo.com> - 2016-03-05 19:20 +0100
Re: Random permutations [was Re: Libraries for sysadmins?] Andreas Leitgeb <avl@logic.at> - 2016-03-05 18:46 +0000
Re: Random permutations [was Re: Libraries for sysadmins?] Brixomatic <brixomatic@yahoo.com> - 2016-03-15 19:22 +0100
Re: Random permutations [was Re: Libraries for sysadmins?] Andreas Leitgeb <avl@logic.at> - 2016-03-15 22:30 +0000
Re: Random permutations [was Re: Libraries for sysadmins?] Andreas Leitgeb <avl@logic.at> - 2016-03-05 18:30 +0000
Re: Random permutations [was Re: Libraries for sysadmins?] Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-03-05 13:46 -0500
Re: Random permutations [was Re: Libraries for sysadmins?] Andreas Leitgeb <avl@logic.at> - 2016-03-05 19:40 +0000
Re: Libraries for sysadmins? Robert Klemme <shortcutter@googlemail.com> - 2016-03-05 12:10 +0100
Re: Libraries for sysadmins? Arne Vajhøj <arne@vajhoej.dk> - 2016-03-04 21:42 -0500
Re: Libraries for sysadmins? Arne Vajhøj <arne@vajhoej.dk> - 2016-03-04 21:48 -0500
csiph-web