I have String[] private_array; and String[] public_array; defined in my project.
private_array is a sequence of numbers, of no set amount (sometimes more numbers, sometimes less), like, [105, 21, 57, 60, 103, 108, 111, 113, 116, 173, 104]
Likewise, public_array is a sequence of numbers, of no set amount, like, [102, 44, 3]
I want to make a new String, mixture_array, that will contain a total of 10 non-repeating numbers, made from numbers in private_array and public_array. These 10 numbers should be made from private_array, firstly, but if there are less than 10 numbers in private_array, then numbers from public_array should make up the difference.
How I can do this?
Right now I have two methods, getPrivateRandomNumbers(); and getPublicRandomNumbers(); that give me non-repeating numbers from each string array. (however, my activity does not load properly if an array contains less than 10 numbers, I'm sure it's to do with the '11' part)
private Integer[] getPrivateRandomNumbers() {
HashSet<Integer> integers = new HashSet<>(11);
Random random = new Random();
while (integers.size() < 11) {
// add number generation logic below
integers.add(Integer.parseInt(private_array[random.nextInt(private_array.length)]));
}
private_array_numbers = integers.toArray(new Integer[11]);
return private_array_numbers;
}
private Integer[] getPublicRandomNumbers() {
HashSet<Integer> integers = new HashSet<>(11);
Random random = new Random();
while (integers.size() < 11) {
// add number generation logic below
integers.add(Integer.parseInt(public_array[random.nextInt(public_array.length)]));
}
public_array_numbers = integers.toArray(new Integer[11]);
return public_array_numbers;
}
And from the above I can get:
mixture_array = (Arrays.toString(private_array_numbers) + Arrays.toString(public_array_numbers));
How could I fuse the two arrays together, to make mixture_array in the way I'm looking for?
Aucun commentaire:
Enregistrer un commentaire