Как только из первого выводимого списка удалить все повторяющиеся элементы (названия планет)?

Рейтинг: -2Ответов: 1Опубликовано: 12.07.2023
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]);

    }
}

Ответы

▲ 0
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Random;
import java.util.Set;

public class HW3 {
    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))]++;
        }

        Set<String> set = new LinkedHashSet<>(randPlanets);
        randPlanets.clear();
        randPlanets.addAll(set);

        System.out.println(randPlanets);

        for (int i = 0; i < counts.length; i++)

            System.out.printf("%s - %s\n", listPlanets.get(i), counts[i]);

    }
}