@ne_nuzhen

Как Написать методы добавления и вывода используя Vector?

Здравствуйте, возникла такая проблема, что я не знаю как написать методы добавление элементов и их вывода, используя класс Vector. У меня есть 4 поля (colour, name, price, year), мне нужно, чтобы в методе add они записывались в класс Vector, а затем в методе print, какой-то элемент по индексу из этого вектора должен быть выведен. В main происходит выбор пункта меню, если, например, выбран 1-ый пункт, то пользователь вводит данные, а затем с помощью метода add они добавляются в Vector, а когда пользователь выводит какой-то элемент структуры, то выводится все 4 поля. Ниже основной класс и класс с полями. За помощь заранее спасибо!
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Vector;

public class vectorExample{

    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        var vector = new Vector<Car>();





        String colour;
        String name;
        String price;
        int priceInt = 0;
        String year;
        int yearInt = 0;
        boolean exit = true;
        int menuItem;
        String StringMenu;
        String[] array;
        while(exit){
            System.out.println("Выберите пункт меню: ");
            System.out.println("1. Ввод элемента ");
            System.out.println("2. Вывод элемента");
            System.out.println("3. Вывод структуры");
            System.out.println("4. Выход");
            StringMenu = reader.readLine();
            array = StringMenu.split(" ");
            if (array.length > 1 || array[0].contains("\t")) {
                System.out.println("Ошибка! Введены буквы и/или пробел");
                System.out.println("------------------------------------------- \n");
            } else {
                try {
                    menuItem = Integer.parseInt(array[0]);
                    if(menuItem == 1){
                        System.out.println("\n--------------------------------\n");
                        boolean Enter = true;
                        System.out.println("Введите цвет транспорта:");
                        colour = reader.readLine();
                        //colourMachine.add(colour);
                        System.out.println("Введите марку транспорта:");
                        name = reader.readLine();
                        //nameMachine.add(name);
                        while (Enter) {
                            System.out.println("Введите цену транспорта:");
                            price = reader.readLine();
                            priceInt = Integer.parseInt(price);
                            if (priceInt < 0) {
                                System.out.println("--------------------------------");
                                System.out.println("Цена не может быть отрицательной");
                                System.out.println("--------------------------------\n");
                                System.out.println("Введите цену еще раз");
                                Enter = true;
                            } else {
                                Enter = false;
                            }
                        }
                        Enter = true;
                        while (Enter){
                            System.out.println("Введите год выпуска транспорта:");
                            year = reader.readLine();
                            yearInt = Integer.parseInt(year);
                            if (yearInt < 0) {
                                System.out.println("--------------------------------");
                                System.out.println("Год не может быть отрицательным");
                                System.out.println("--------------------------------\n");
                                System.out.println("Введите год еще раз");
                                Enter = true;
                            } else {
                                Enter = false;
                            }
                        }
                        System.out.println("\n--------------------------------\n");

                        vector.add(new Car(colour, name, priceInt, yearInt));

                        exit = true;
                    } else if(menuItem == 2){
                        System.out.println("вывод одного элемента");
                        String index = reader.readLine();
                        int indexInt = Integer.parseInt(index);
                        var carFromVector = vector.get(indexInt);
                        System.out.println("Элемент "+ indexInt +"\n" + carFromVector);
                        exit = true;
                    } else if(menuItem == 3){
                        System.out.println("вывод структуры");
                        exit = true;
                    } else if(menuItem == 4){
                        exit = false;

                    }
                    if (menuItem < 1 || menuItem > 4) {
                        System.out.println("Ошибка! Вы вышли из диапазона допустимых значений");
                        System.out.println("-------------------------------------------\n");
                        exit = true;
                    }
                } catch (NumberFormatException var14) {
                    System.out.println("Ошибка! Введены буквы и/или пробел1");
                    System.out.println("-------------------------------------------\n");

                    exit = true;
                }
            }
        }
    }

    static class Car{
        private final String colour;
        private final String name;
        private final int price;
        private final int year;

        public  Car(String colour, String name, int price, int year){
            this.colour = colour;
            this.name = name;
            this.price = price;
            this.year = year;
        }
    }
}
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
xez
@xez Куратор тега Java
TL Junior Roo
Будет странно, если в автомобиле будет содержаться коллекция автомобилей.
Объявите лучше Vector в классе VectorExample. Например вот так: var vector = new Vector<Car>();
Чтобы добавить автомобиль в vector: vector.add(new Car(..., ..., ..., ...));
Чтобы достать по индексу: var carFromVector = vector.get(0);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы