46 lines
1.4 KiB
Java
46 lines
1.4 KiB
Java
// arrays/IceCreamFlavors.java
|
|
// (c)2021 MindView LLC: see Copyright.txt
|
|
// We make no guarantees that this code is fit for any purpose.
|
|
// Visit http://OnJava8.com for more book information.
|
|
// Returning arrays from methods
|
|
import java.util.*;
|
|
import static onjava.ArrayShow.*;
|
|
|
|
public class IceCreamFlavors {
|
|
private static SplittableRandom rand =
|
|
new SplittableRandom(47);
|
|
static final String[] FLAVORS = {
|
|
"Chocolate", "Strawberry", "Vanilla Fudge Swirl",
|
|
"Mint Chip", "Mocha Almond Fudge", "Rum Raisin",
|
|
"Praline Cream", "Mud Pie"
|
|
};
|
|
public static String[] flavorSet(int n) {
|
|
if(n > FLAVORS.length)
|
|
throw new IllegalArgumentException("Set too big");
|
|
String[] results = new String[n];
|
|
boolean[] picked = new boolean[FLAVORS.length];
|
|
for(int i = 0; i < n; i++) {
|
|
int t;
|
|
do
|
|
t = rand.nextInt(FLAVORS.length);
|
|
while(picked[t]);
|
|
results[i] = FLAVORS[t];
|
|
picked[t] = true;
|
|
}
|
|
return results;
|
|
}
|
|
public static void main(String[] args) {
|
|
for(int i = 0; i < 7; i++)
|
|
show(flavorSet(3));
|
|
}
|
|
}
|
|
/* Output:
|
|
[Praline Cream, Mint Chip, Vanilla Fudge Swirl]
|
|
[Strawberry, Vanilla Fudge Swirl, Mud Pie]
|
|
[Chocolate, Strawberry, Vanilla Fudge Swirl]
|
|
[Rum Raisin, Praline Cream, Chocolate]
|
|
[Mint Chip, Rum Raisin, Mocha Almond Fudge]
|
|
[Mocha Almond Fudge, Mud Pie, Vanilla Fudge Swirl]
|
|
[Mocha Almond Fudge, Mud Pie, Mint Chip]
|
|
*/
|