Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
5 / 5 / 1
Регистрация: 08.07.2015
Сообщений: 91

Списочный массив, агрегация

22.07.2015, 15:06. Показов 2255. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужна вывести все в одном виде:
Есть классы
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class Car {
 
    private boolean ready_car;
    private String car_name;
 
    public Car (boolean ready_car, String car_name){
        this.ready_car = ready_car;
        this.car_name = car_name;
    }
 
    public boolean isReady_car (){
        return ready_car;
    }
 
    public String getCar_name (){
        return car_name;
    }
 
 
    public void setReady_car (boolean ready_car){
            this.ready_car = ready_car;
    }
 
    public void setCar_name (String car_name){
        this.car_name = car_name;
    }
 
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class Driver {
 
    private boolean ready_driver;
    private String driver_name;
 
    public Driver (boolean ready_driver, String driver_name){
        this.ready_driver = ready_driver;
        this.driver_name = driver_name;
    }
 
    public boolean isReady_driver (){
        return ready_driver;
    }
 
    public String getDriver_name (){
        return driver_name;
    }
 
    public void setReady_driver (boolean ready_driver){
            this.ready_driver = ready_driver;
        }
 
    public void setDriver_name (String driver_name){
        this.driver_name = driver_name;
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Dispatcher {
 
    private String disp_name;
 
    public Dispatcher(String disp_name){
        this.disp_name = disp_name;
    }
 
    public String getDisp_name (){
        return disp_name;
    }
 
    public void setDisp_name (String disp_name){
        this.disp_name = disp_name;
    }
 
    public void show (){
        System.out.printf(getDisp_name());
    }
 
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package HW3_3_SP2;
 
import java.util.ArrayList;
 
/**
 * Created by Valeriu on 16.07.2015.
 */
public class Passage {
 
    {
        idGenerator++;
    }
    private static int idGenerator = 0;
    private int id = idGenerator;
    private String from_driver;
    private String where_driver;
    private double price;
 
 
    public Passage(String from_driver, String where_driver, double price) {
        this.price = price;
        this.from_driver = from_driver;
        this.where_driver = where_driver;
    }
 
 
    public int getId() {
        return id;
    }
 
    public String getFrom_driver() {
        return from_driver;
    }
 
    public String getWhere_driver() {
        return where_driver;
    }
 
    public double getPrice () { return price; }
 
 
    public void setId(int id) {
        this.id = id;
    }
 
    public void setFrom_driver(String from_driver) {
        this.from_driver = from_driver;
    }
 
    public void setWhere_driver(String where_driver) {
        this.where_driver = where_driver;
    }
 
    public void setPrice (double price) { this.price = price; }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package HW3_3_SP2;
 
/**
 * Created by Valeriu on 22.07.2015.
 */
public class Passage_Compare {
    private Passage passage;
    private Car car;
    private Driver driver;
    private Dispatcher dispatcher;
 
    public Passage_Compare (Passage passage, Car car, Driver driver, Dispatcher dispatcher) {
        this.passage = passage;
        this.car = car;
        this.driver = driver;
        this.dispatcher = dispatcher;
    }
 
        public Passage passage () { return  passage; }
        public Car car () { return car; }
        public Driver driver () { return driver; }
        public Dispatcher dispatcher () {
        return dispatcher;
    }
 
        public void setPassage (Passage passage) {this.passage = passage;}
        public void setCar (Car car) {this.car = car;}
        public void setDriver (Driver driver) {this.driver = driver;}
        public void setDispatcher (Dispatcher dispatcher) {
        this.dispatcher = dispatcher;
    }
 
    public void show(Car car, Driver driver, Dispatcher dispatcher, Passage passage) {
        String isReadyCar = car.isReady_car() ? "Ready" : "Not ready";
        String isReadyDriver = driver.isReady_driver() ? "Ready" : "Not ready";
        System.out.printf("%2s %19s %19s %18s %14s %11s %16s %18s %15s", passage.getId(), passage.getFrom_driver(), passage.getWhere_driver(),
                dispatcher.getDisp_name(), car.getCar_name(), isReadyCar, driver.getDriver_name(), isReadyDriver, passage.getPrice());
    }
 
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
public class Depot {
    public static void main(String[] args) {
 
        ArrayList<Dispatcher> dispatcher = new ArrayList <Dispatcher>();
        dispatcher.add(new Dispatcher("Tanya"));
        dispatcher.add(new Dispatcher("Irina"));
        dispatcher.add(new Dispatcher("Inna"));
        dispatcher.add(new Dispatcher("Natasha"));
        dispatcher.add(new Dispatcher("Polina"));
 
        ArrayList<Car> car = new ArrayList <Car>();
        car.add(new Car(false, "Volvo"));
        car.add(new Car(true, "Toyota"));
        car.add(new Car(false, "21099"));
        car.add(new Car(true, "BMW X6"));
        car.add(new Car(true, "Mazda 3"));
 
        ArrayList<Driver> driver = new ArrayList <Driver>();
        driver.add(new Driver(true, "Vasya"));
        driver.add(new Driver(false, "Igor"));
        driver.add(new Driver(false, "Anton"));
        driver.add(new Driver(true, "Valeriu"));
        driver.add(new Driver(true, "Ruslan"));
 
        ArrayList<Passage> passage = new ArrayList <Passage>();
        passage.add(new Passage("Kyiv", "Lviv", 7.65));
        passage.add(new Passage("Moskva", "Piter", 8.80));
        passage.add(new Passage("Budapesht", "Berlin", 3.33));
        passage.add(new Passage("Riga", "Stokgolm", 2.65));
 
 
        ArrayList<Passage_Compare> passage_compare = new ArrayList<Passage_Compare>();
        //не знаю, что тут писать. не могу понять как сложить все мои списочные массивы
        //(passage+dispatcher+car+driver)
 
 
        System.out.println("All passages:");
        System.out.printf("%2s %19s %19s %18s %14s %11s %16s %18s %15s", "Id", "From", "Where",
                "Disp name", "Model", "Car status", "Driver name", "Driver status", "Price, UAH");
        for (Passage_Compare p : passage_compare) {
            System.out.println(" ");
            //соотвественно,что надо будет писать в методах на вывод результата
            p.show();
        }
 
    }
}
С обычными массивами все было просто. Но вот не могу понять, как мне быть со списочными. Класс который все собирает: Passage_compare. Класс Main: Depot.
Направьте на путь истинный, решил задачу несколькими способами, хочу освоить списочный массивы, но что-то не сильно выходит их складывать.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.07.2015, 15:06
Ответы с готовыми решениями:

Агрегация, массив виз
У меня есть два класса загранпаспорт и визы #include &quot;Passport.h&quot; #include&quot;Visa.h&quot; class ForeignPassport : public Passport { ...

Перечисляемый и списочный тип данных
Информация о количестве деталей на автоматизированном складе хранится в ПК и номенклатура деталей определяется размером и цветом....

Агрегация в C#
Объясните пожалуйста, что такое агрегация на каком-нибудь примере.

8
 Аватар для ne2win
206 / 206 / 71
Регистрация: 25.02.2014
Сообщений: 569
22.07.2015, 15:13
Duke_Nukem147, вы ведь конструктор написали в Passage_Compare, так и добавляйте, для вывода переопределите toString();
0
5 / 5 / 1
Регистрация: 08.07.2015
Сообщений: 91
22.07.2015, 15:22  [ТС]
Цитата Сообщение от Kochmarik Посмотреть сообщение
Duke_Nukem147, вы ведь конструктор написали в Passage_Compare, так и добавляйте, для вывода переопределите toString();
Java
1
2
3
4
5
6
    public String toString(Car car, Driver driver, Dispatcher dispatcher, Passage passage) {
        String isReadyCar = car.isReady_car() ? "Ready" : "Not ready";
        String isReadyDriver = driver.isReady_driver() ? "Ready" : "Not ready";
        return String.format("%2s %19s %19s %18s %14s %11s %16s %18s %15s", passage.getId(), passage.getFrom_driver(), passage.getWhere_driver(),
                dispatcher.getDisp_name(), car.getCar_name(), isReadyCar, driver.getDriver_name(), isReadyDriver, passage.getPrice());
    }
Так что ли ? А как не в Main их всех "сплюсовать" ?
0
 Аватар для ne2win
206 / 206 / 71
Регистрация: 25.02.2014
Сообщений: 569
22.07.2015, 15:28
Duke_Nukem147, его нужно написать в классе Passage_Compare, и он без параметров
0
5 / 5 / 1
Регистрация: 08.07.2015
Сообщений: 91
22.07.2015, 15:34  [ТС]
Цитата Сообщение от Kochmarik Посмотреть сообщение
Duke_Nukem147, его нужно написать в классе Passage_Compare, и он без параметров
Спасибо. Я это сделал. Убрал все параметры. А как же все-таки мои массивы.
У меня в main. Есть они с именами маршрутов такси, цен, именами диспетчеров, таксистов. Как мне сплюсовать эти данные и вывести с помощью метода show. В обычных массивах, это делалось с помощью параметров. Либо, если я наследовал классы. А здесь в списочных я не знаю как. Гляньте, пожалуйста. если Вас на затруднит мой Main.
0
 Аватар для ne2win
206 / 206 / 71
Регистрация: 25.02.2014
Сообщений: 569
22.07.2015, 18:14
Цитата Сообщение от Duke_Nukem147 Посмотреть сообщение
Как мне сплюсовать эти данные
Создавать объекты типа Passage_Compare,передавать в конструктор объекты 4 типов, и в цикле добавлять их в массив
Цитата Сообщение от Duke_Nukem147 Посмотреть сообщение
эти данные и вывести с помощью метода show
Выводите через toString()
0
5 / 5 / 1
Регистрация: 08.07.2015
Сообщений: 91
26.07.2015, 14:54  [ТС]
Цитата Сообщение от Kochmarik Посмотреть сообщение
Создавать объекты типа Passage_Compare,передавать в конструктор объекты 4 типов, и в цикле добавлять их в массив

Выводите через toString()
простите не разобрался. все перечитал. все перерыл. нету ничего дельного.
по одному они шикарно выводятся. но вот, я начинаю их плюсовать.

Java
1
2
        ArrayList<Passage_Compare> passage_compare = new ArrayList<Passage_Compare>();
        passage_compare.add(new Passage_Compare(dispatcher, car, driver, passage));
Он мне его подчеркивает. Вот что у меня в конструкторе

Java
1
2
3
4
5
6
    public Passage_Compare (Passage passage, Car car, Driver driver, Dispatcher dispatcher) {
        this.passage = passage;
        this.car = car;
        this.driver = driver;
        this.dispatcher = dispatcher;
    }
Т.Е. я агрегирую все мои предыдущие классы. Он требует изменить сигнатуру на ArrayList в этом конструкторе.
Если я это делаю, то теряю доступ к своим полям и toString() просто подчеркивает все красным

Java
1
2
3
4
5
6
    public String toString() {
        String isReadyCar = car.isReady_car() ? "Ready" : "Not ready";
        String isReadyDriver = driver.isReady_driver() ? "Ready" : "Not ready";
        return String.format("%2s %19s %19s %18s %14s %11s %16s %18s %15s", passage.getId(), passage.getFrom_driver(), passage.getWhere_driver(),
                dispatcher.getDisp_name(), car.getCar_name(), isReadyCar, driver.getDriver_name(), isReadyDriver, passage.getPrice());
    }
Что в данном случае Вы посоветуете предпринять? Протяните руку помощи заблудившейся душе. Я о Вас не забуду
0
 Аватар для ne2win
206 / 206 / 71
Регистрация: 25.02.2014
Сообщений: 569
26.07.2015, 16:49
Лучший ответ Сообщение было отмечено Duke_Nukem147 как решение

Решение

Duke_Nukem147, вот так, не то?
Java
1
2
3
4
5
6
7
 ArrayList<Passage_Compare> passage_compare = new ArrayList<Passage_Compare>();
        for(int i=0;i<4;i++)
            passage_compare.add(new Passage_Compare(passage.get(i),car.get(i),driver.get(i),dispatcher.get(i)));
//////
 
for (Passage_Compare p : passage_compare) {
            System.out.println(p);
0
5 / 5 / 1
Регистрация: 08.07.2015
Сообщений: 91
28.07.2015, 08:57  [ТС]
Цитата Сообщение от Kochmarik Посмотреть сообщение
Duke_Nukem147, вот так, не то?
Java
1
2
3
4
5
6
7
 ArrayList<Passage_Compare> passage_compare = new ArrayList<Passage_Compare>();
        for(int i=0;i<4;i++)
            passage_compare.add(new Passage_Compare(passage.get(i),car.get(i),driver.get(i),dispatcher.get(i)));
//////
 
for (Passage_Compare p : passage_compare) {
            System.out.println(p);
спасибо. все вышло очень красиво. как я сам до этого не додумался
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.07.2015, 08:57
Помогаю со студенческими работами здесь

Агрегация
Здравствуйте, подскажите, пожалуйста, как решить такую проблему. Есть 2 класса, Form1:Form и User:Form1, я хочу в классе Form1 создать...

Агрегация
Здрасте уважаемые форумчане, подскажите пожалуйста, как грамотно сделать, что бы оба обьекта могли видеть методы друг друга? Вот мой...

Агрегация
Всем привет. Подскажите, как сделать так, чтобы объект некоторого класса мог агрегировать объекты этого же класса. Ну то есть, если...

Агрегация
Доброе время,у меня вот такое задание Спроектировать 2 класса, сущности которых представлены в заданиях. В каждом классе должно быть по...

агрегация
Здравствуйте. помогите пожалуйста разобраться с задачей: На сколько больше(или меньше) было дней с положительной температурой, чем с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru