Как сделать, чтобы пользователь мог вводить название телефонов и фирмы сам, не трогая код?
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Stream<Phone> phoneStream = Stream.of(new Phone("Iphone X", "Apple"));
Map<String, List<Phone>> phonesByCompany = phoneStream.collect(
Collectors.groupingBy(Phone::getCompany));
for(Map.Entry<String, List<Phone>> item : phonesByCompany.entrySet()){
System.out.println(item.getKey());
for(Phone phone : item.getValue()){
System.out.println(phone.getName());
}
System.out.println();
}
}
}
код класса Phone
public class Phone {
private String name;
private String company;
public Phone(String name, String comp){
this.name=name;
this.company=comp;
}
public String getName() { return name; }
public String getCompany() { return company; }
}
Ответы (1 шт):
Автор решения: Dewerro
→ Ссылка
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Введите названия телефонов через запятую (Apple Iphone X, Samsung Galaxy): ");
String line = scanner.nextLine();
String[] array = line.split(",");
ArrayList<Phone> list = new ArrayList<>();
for (String str : array) {
list.add(new Phone(str.substring(str.indexOf(' ') + 1), str.substring(0, str.indexOf(' '))));
}
for (Phone phone : list) {
System.out.println("Компания " + phone.getCompany() + "; Название " + phone.getName());
}
}