Как только из первого выводимого списка удалить все повторяющиеся элементы (названия планет)?
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import java.util.Set;
import java.util.stream.Collectors;
public class HW3 {
private static Object removeDuplicates;
public static void main(String[] args) {
planetsCounter(8);
}
static void randomNumbers(int size, int maxValue) {
ArrayList<Integer> nums = new ArrayList<>(size);
Random rand = new Random();
for (int i = 0; i < size; i++)
nums.add(rand.nextInt(maxValue));
for (Integer num : nums)
System.out.print(num + " ");
System.out.println();
nums.sort(null);
Iterator<Integer> iter = nums.iterator();
while (iter.hasNext())
System.out.print(iter.next() + " ");
}
static void planetsCounter(int n) {
List<String> listPlanets = List.of("Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus",
"Neptun");
List<String> randPlanets = new ArrayList<String>(n);
int[] counts = new int[listPlanets.size()];
Random rand = new Random();
for (int i = 0; i < n; i++) {
randPlanets.add(listPlanets.get(rand.nextInt(listPlanets.size())));
System.out.print((randPlanets.get(i)) + " ");
counts[listPlanets.indexOf(randPlanets.get(i))]++;
}
System.out.println();
for (int i = 0; i < counts.length; i++)
System.out.printf("%s - %s\n", listPlanets.get(i), counts[i]);
}
}
Источник: Stack Overflow на русском