Member 14050314 Ответов: 1

Сортировка по ключу и значениям здесь .. И есть ошибки, в частности, также


Напишите java-программу для чтения деталей самолета от пользователя и поиска различных производителей самолетов.
Протяните нить, чтобы найти самолеты каждого производителя и показать их.
Создайте основной класс Main.java
Создайте класс самолета со следующими атрибутами.
• имя – строка
• manufacturerName – строка
создайте конструктор для класса самолета с двумя аргументами name,manufacturerName
Создать еще один класс с Изготовление следующих атрибутов
• самолет -список<самолет>
• manufacturerAircraftMap - хранилище HashMap и Л;строка,список<строка&ГТ;&ГТ;
В хэш-карте manufacturerAircraftMap ключ-это имя производителя, а значение-список строк, соответствующих названиям самолетов.
Ключи должны быть отсортированы в порядке возрастания, а список значений также должен быть отсортирован в алфавитном порядке.

Расширения класса Thread и переопределить метод run.

В основном классе считайте входные данные от пользователя и создайте поток для производителя, чтобы найти различных производителей самолетов и отобразить детали
Формат ввода и вывода :

См. примеры ввода и вывода для получения спецификаций форматирования.
[Весь текст, выделенный жирным шрифтом, соответствует входу, а остальная часть - выходу]
Пример Ввода/Вывода:
Enter the number of aircrafts
6
Enter the aircraft 1 details
A320
AirAsia
Enter the aircraft 2 details
A318
AirAsia
Enter the aircraft 3 details
A321
AirAsia
Enter the aircraft 4 details
737
Boeing
Enter the aircraft 5 details
777
Boeing
Enter the aircraft 6 details
BD500
Bombardier
Manufacturer Details
AirAsia
A320
A318
A321
Boeing
737
777
Bombardier
BD500


Что я уже пробовал:

public class Main {
	public static void main(String[] args)
	{
	Scanner sc = new Scanner(System.in);
	int m = sc.nextInt();
	HashMap<String , List<string>> manufacturerAircraftMap = new HashMap<>();
	sc.nextLine();
	String name , manufacturerName;
	for(int i = 0 ; i<m ;i++)
	{
		System.out.print("Enter the aircraft " + i + "details :");
		name = sc.nextLine();
		manufacturerName = sc.nextLine();
		manufacturerAircraftMap.put(name , (List<string>) new Aircraft( manufacturerName));
	 }
	}

}
 class Aircraft
{
	private String name;
	private String manufacturerName;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getManufacturerName() {
		return manufacturerName;
	}
	public void setManufacturerName(String manufacturerName) {
		this.manufacturerName = manufacturerName;
	}
	public Aircraft(String name , String manufacturerName)
	{
		this.setName(name);
		this.setManufacturerName(manufacturerName);
	}
}
 class Manufacturer extends Thread
{
     private List<aircraft> aircraft;
     
     public void run()
     {
    	 
     }

	public List<aircraft> getAircraft() {
		return aircraft;
	}

	public void setAircraft(List<aircraft> aircraft) {
		this.aircraft = aircraft;
	}
     
     
}

Richard MacCutchan

В чем же проблема?

Member 14050314

в этой строке есть ошибка
manufacturerAircraftMap.поставить(наименование , (список<строка> В) новых самолетов( manufacturerName));
и можете ли вы помочь мне отсортировать на основе названия и названия производителя как ключ, так и значения

Richard MacCutchan

Какая ошибка?

Richard MacCutchan

Вы не можете этого сделать. Вы пытаетесь сказать компилятору, что новый объект класса Aircraft на самом деле является List<string>, которой она явно не является.

Patrice T

а у вас есть вопрос ?

OriginalGriff

И что же?
Что он делает такого, чего вы не ожидали, или не делает того, что вы сделали?
Где ты застрял?
Какая помощь вам нужна?

Member 14050314

в этой строке есть ошибка
manufacturerAircraftMap.поставить(наименование , (список<строка> В) новых самолетов( manufacturerName));
и можете ли вы помочь мне отсортировать на основе имени и имени производителя как ключ, так и значения

OriginalGriff

Какая ошибка?
И когда же?
Что вы делаете, чтобы получить ошибку?
Есть ли какие-либо сообщения об ошибках?
Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли - мы получаем только то, что вы печатаете для работы

1 Ответов

Рейтинг:
0

John Hanna 2

Во первых исправьте код он есть

List<String>
не перечислять<строку>
Вы могли бы использовать TreeMap вместо HashMap, если хотите, чтобы имя(ключ) было отсортировано.
Сортировка названия производства (значений) сложна, но не сложна.

Если вы гуглили о том, как сортировать HashMap по ключам и значениям, вам не нужно было бы спрашивать здесь.Пожалуйста, сделай домашнее задание самостоятельно.

Поскольку вы спросили, я погуглил его для вас.

Я предполагаю, что у вас есть ценности в
manufacturerAircraftMap

Поскольку вы хотите, чтобы были отсортированы как ключи, так и значения, обратитесь к приведенным ниже статьям:

Java 8 - сортировка HashMap по значениям в порядке возрастания и убывания | Java Code Geeks - 2019
Сортировка хэш-карты в Java | Baeldung
Как сортировать HashMap в Java по ключам и значениям | Java Hungry


CPallini

У меня 5.