Написать ООП программу на языке java:
1) Напишите класс-конструктор у которого принимает минимум 3 строки,
содержащие три поля id игрушки, текстовое название и частоту выпадения
игрушки
2) Из принятой строки id и частоты выпадения(веса) заполнить минимум три
массива.
3) Используя API коллекцию: java.util.PriorityQueue добавить элементы в
коллекцию
4) Организовать общую очередь
5) Вызвать Get 10 раз и записать результат в
файл
java
import java.io.FileWriter;
import java.io.IOException;
import java.util.PriorityQueue;
class Toy {
private int id;
private String name;
private double weight;
public Toy(int id, String name, double weight) {
this.id = id;
this.name = name;
this.weight = weight;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public double getWeight() {
return weight;
}
}
public class Main {
public static void main(String[] args) {
String[] lines = {"1,Toy1,0.5", "2,Toy2,0.3", "3,Toy3,0.7"};
Toy[] toys = new Toy[lines.length];
double[] weights = new double[lines.length];
for (int i = 0; i < lines.length; i++) {
String[] parts = lines[i].split(",");
int id = Integer.parseInt(parts[0]);
String name = parts[1];
double weight = Double.parseDouble(parts[2]);
toys[i] = new Toy(id, name, weight);
weights[i] = weight;
}
PriorityQueue<Toy> queue = new PriorityQueue<>((t1, t2) -> Double.compare(t2.getWeight(), t1.getWeight()));
for (Toy toy : toys) {
queue.add(toy);
}
try {
FileWriter writer = new FileWriter("output.txt");
for (int i = 0; i < 10; i++) {
Toy toy = queue.poll();
writer.write(toy.getId() + "," + toy.getName() + "," + toy.getWeight() + "n");
queue.add(toy);
}
writer.close();
} catch (IOException e) {
System.out.println("Ошибка при записи в файл: " + e.getMessage());
}
}
}
В этой программе мы создаем класс `Toy`, который содержит поля `id`, `name` и `weight`. Далее создается класс `Main`, в котором осуществляется весь оставшийся функционал программы.
Строки из входных данных разбиваются на отдельные части (id, name, weight) при помощи метода `split(",")`. Затем создаются экземпляры класса `Toy` и соответствующие значения добавляются в массивы `toys` и `weights`.
Для создания приоритетной очереди используется класс `PriorityQueue`. Мы передаем в его конструктор компаратор, который сравнивает игрушки по их весу. Затем мы добавляем все игрушки из массива `toys` в приоритетную очередь.
Далее мы создаем объект `FileWriter`, чтобы записывать результаты в файл `output.txt`. Затем мы 10 раз извлекаем игрушку из приоритетной очереди, записываем ее данные в файл и затем снова добавляем в очередь. Все это происходит в блоке `try-catch`, чтобы обработать возможные ошибки записи в файл. После завершения записи файл закрывается.
Таким образом, программа создает класс-конструктор для игрушек, заполняет массивы с помощью входных данных, добавляет игрушки в приоритетную очередь и записывает результаты в файл.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет