Привет! Меня зовут Максим, и сегодня я расскажу тебе о том, как написать программу на языке программирования Java для работы с файлом tickets.json и выполнения двух задач⁚ нахождение минимального времени полета между городами Владивосток и Тель-Авив для каждого авиаперевозчика, а также расчет разницы между средней ценой и медианой для полетов между этими городами.Для начала, нам понадобится файл tickets.json, который содержит информацию о билетах на рейсы. Для удобства работы с JSON-файлами в Java, мы будем использовать библиотеку JSON.simple. Убедитесь, что у вас установлена эта библиотека перед началом работы.Первая задача ‒ нахождение минимального времени полета между городами Владивосток и Тель-Авив для каждого авиаперевозчика. Для этого нам потребуется прочитать файл tickets.json и извлечь необходимую информацию. Вот как будет выглядеть код⁚
java
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class FlightAnalyzer {
public static void main(String[] args) {
JSONParser parser new JSONParser;
try {
// Чтение файла tickets.json
Object obj parser.parse(new FileReader(″tickets.json″));
JSONArray tickets (JSONArray) obj;
// Создание карты, где ключ ‒ авиаперевозчик, значение ౼ минимальное время полета
Map
// Обход всех билетов
for (Object ticket ⁚ tickets) {
JSONObject ticketObj (JSONObject) ticket;
String carrier (String) ticketObj.get(″carrier″);
String origin (String) ticketObj.get(″origin″);
String destination (String) ticketObj.get(″destination″);
int duration ((Long) ticketObj.get(″duration″)).intValue;
// Проверка условий городов и обновление минимального времени полета для каждого авиаперевозчика
if (origin.equals(″Владивосток″) nn destination.equals(″Тель-Авив″)) {
if (!carriers.containsKey(carrier) || duration < carriers.get(carrier)) {
carriers.put(carrier, duration);
}
}
}
for (Map.Entry
System.out.println(″Авиаперевозчик⁚ ″ entry.getKey ″, Минимальное время полета⁚ ″ entry.getValue ″ мин″);
}
} catch (IOException | ParseException e) {
e.printStackTrace;
}
}
}
Вторая задача ‒ расчет разницы между средней ценой и медианой для полетов между городами Владивосток и Тель-Авив. Для выполнения этой задачи нам также потребуется прочитать файл tickets.json и извлечь необходимую информацию. Вот как будет выглядеть код⁚
java
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import java.io.FileReader;
import java.io.IOException;
import java;util.ArrayList;
import java.util.Collections;
import java.util.List;
public class FlightAnalyzer {
public static void main(String[] args) {
JSONParser parser new JSONParser;
try {
// Чтение файла tickets.json
Object obj parser.parse(new FileReader(″tickets;json″));
JSONArray tickets (JSONArray) obj;
// Создание списка для хранения цен на билеты
List
// Обход всех билетов
for (Object ticket ⁚ tickets) {
JSONObject ticketObj (JSONObject) ticket;
String origin (String) ticketObj.get(″origin″);
String destination (String) ticketObj.get(″destination″);
double price (double) ticketObj.get(″price″);
// Проверка условий городов и добавление цены в список
if (origin.equals(″Владивосток″) nn destination.equals(″Тель-Авив″)) {
prices.add(price);
}
}
// Расчет средней цены и медианы
double averagePrice prices.stream.mapToDouble(Double⁚⁚doubleValue).average.orElse(0.0);
Collections.sort(prices);
double medianPrice;
if (prices.size % 2 0) {
medianPrice (prices.get(prices;size / 2 ౼ 1) prices.get(prices.size / 2)) / 2.0;
} else {
medianPrice prices.get(prices.size / 2);
}
System.out.println(″Средняя цена⁚ ″ averagePrice);
System.out.println(″Медианная цена⁚ ″ medianPrice);
System.out.println(″Разница между средней ценой и медианой⁚ ″ (averagePrice ‒ medianPrice));
} catch (IOException | ParseException e) {
e.printStackTrace;
}
}
}
Не забудьте перед запуском программы скопировать файл tickets.json в директорию проекта или изменить путь к файлу на соответствующий в коде программы.
Оба этих примера помогут вам решить задачи, описанные в рубрике, при помощи языка программирования Java 17. Удачи!