Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
3 / 3 / 0
Регистрация: 20.12.2018
Сообщений: 232

Объект в коллекцию

27.03.2019, 16:58. Показов 1587. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хочу, чтобы объекты которые я создаю (Person person1 = new Person), каждый при создании, автоматически ложился в List и я мог вывести на консоль все объекты.
Ограничения: не хочу создавать List в main(). Чтоб вы лучше поняли - я не хочу после создания множества объектов, потом их вручную ложить в коллекцию, по типу list.add(person1);
А сразу при создании объекта, он ложился туда и при вызове созданного метода выводить весь массив на консоль
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.03.2019, 16:58
Ответы с готовыми решениями:

Как добавить объект в коллекцию?
Помогите объект класса добавить в коллекцию, а в коллекции установить сортировку по выбранному полю.

Передать объект или коллекцию объектов с помощью TCP/IP
Доброго времени суток. у меня вопрос по TCP я уже несколько дней ищу. вот я сделал клиент \ сервер. они меняются между собой...

Как зделать коллекцию экземпляров объекта, а не ссылок на объект?
как зделать коллекцию экземпляров объекта, а не ссылок на объект?

19
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
27.03.2019, 17:10
как ты можешь поместить ссылку того объекта, который ты ещё не создал?

единственное, это создать другой класс, типа StoragePerson
и там метод addAll(Person... persons) или static List<Person> of(Person... persons)

и потом List<Person> list = StoragePerson.of(new Person(), new Person(), new Person(), ....);

Добавлено через 1 минуту
ну или старый добрый вариант:

List<Person> list = new ArrayList<>(Arrays.asList(new Person[]{new Person(), new Person(), new Person()...}))
0
226 / 184 / 80
Регистрация: 13.04.2014
Сообщений: 694
27.03.2019, 17:12

Зачем тебе это?
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
import java.util.ArrayList;
import java.util.List;
 
public class MyClass
{
    private final String title;
 
    public MyClass(final String title, final List<MyClass> myClassList)
    {
        this.title = title;
        myClassList.add(this);
    }
 
    public String getTitle()
    {
        return title;
    }
 
    @Override
    public String toString()
    {
        return title;
    }
 
    public static void main(String[] args)
    {
        List<MyClass> list = new ArrayList<>();
 
        new MyClass("one", list);
        new MyClass("two", list);
 
        list.forEach(System.out::println);
    }
}
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
27.03.2019, 17:14
asdzxc, ну или так )))
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
27.03.2019, 17:18
Цитата Сообщение от andr_17 Посмотреть сообщение
Ограничения: не хочу создавать List в main().
Цитата Сообщение от asdzxc Посмотреть сообщение
public static void main(String[] args) { List<MyClass> list = new ArrayList<>();
...
0
226 / 184 / 80
Регистрация: 13.04.2014
Сообщений: 694
27.03.2019, 17:20
Pablito, ну лист можно и не в main создать
0
3 / 3 / 0
Регистрация: 20.12.2018
Сообщений: 232
27.03.2019, 17:20  [ТС]
Цитата Сообщение от asdzxc Посмотреть сообщение
Зачем тебе это?
Это не то, тут объект с параметром листа, а мне нужно, чтоб просто создаешь объект например Person(name, age)
И при создании этот объект кладется в лист.
Пытался сделать что-то типа
Java
1
2
3
4
5
6
7
8
public List<Person> people = new ArrayList<>();
 
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
        Person p = new Person(name, age);
        people.add(p);
    }
но нужно же еще какойто метод для этого people чтобы он выводил все объекты на консоль или как?
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
27.03.2019, 17:23
тебе как-то нужно обмениваться листом между Person или у каждого будет свой лист с 1 записью....

без передачи никак, только посреднический класс
0
3 / 3 / 0
Регистрация: 20.12.2018
Сообщений: 232
27.03.2019, 17:27  [ТС]
Цитата Сообщение от ArtemFM Посмотреть сообщение
тебе как-то нужно обмениваться листом между Person или у каждого будет свой лист с 1 записью....
без передачи никак, только посреднический класс
ну это я почувствовал, что нужен какойто класс, куда я буду сохранять свои объекты, но путаница крч

Добавлено через 2 минуты
Цитата Сообщение от ArtemFM Посмотреть сообщение
тебе как-то нужно обмениваться листом между Person или у каждого будет свой лист с 1 записью....
без передачи никак, только посреднический класс
хорошо, а если я создам лист в мейне и сделаю какойто метод, который будет ложить все созданные объекты в этот лист без ручного добавления объектов в этот лист типа:
List<Person> people...
Person person1 = new Person...

people.addAllPersons();
0
226 / 184 / 80
Регистрация: 13.04.2014
Сообщений: 694
27.03.2019, 17:28
Можно сделать аспект для всего этого

так как ты хочешь - никто не делает. по крайней мере я не видел
0
3 / 3 / 0
Регистрация: 20.12.2018
Сообщений: 232
27.03.2019, 17:30  [ТС]
Цитата Сообщение от asdzxc Посмотреть сообщение
Можно сделать аспект для всего этого
так как ты хочешь - никто не делает. по крайней мере я не видел
может я просто не умею объяснять, что я хочу)
хочу понять, можно ли не создавать объекты каждый раз в ручную типа кучи строк new Person и .add().
Все что я узнал это можно сделать people.add(new Person()), но тогда всеравно нужно 1000 раз .add писать
0
226 / 184 / 80
Регистрация: 13.04.2014
Сообщений: 694
27.03.2019, 17:31
можно цикл использовать
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
27.03.2019, 17:49
сделай List<Person> addAll(Person... persons). И вот передавай через запятую свои персоны, хоть лям

Добавлено через 1 минуту
лучшеList<Person> addAll(List<Person> list, Person... persons)
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
27.03.2019, 17:52
в Котлине не нужно 1000 раз писать

но я думаю вас всех тупо тролят ибо нельзя быть настолько тупым
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
27.03.2019, 17:55
andr_17, так чтоли?

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
import java.util.List;
import java.util.stream.Stream;
 
public class Person {
    private static List<Person> personList = new ArrayList<>();
    private String name;
    private int age;
 
    public Person() {
    }
 
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
        personList.add(this);
    }
 
    public static Stream<Person> getAll() {
        return personList.stream();
    }
 
    @Override
    public String toString() {
        return "Person{name='" + name + ", age=" + age + '}';
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public class Cyber {
 
    public static void main(String[] args) {
 
        new Person("John", 21);
        Person p2 = new Person("Lee", 22);
        new Person("Mikle", 31);
        Person p4 = new Person("Sam", 25);
 
        Person.getAll().forEach(System.out::println);
 
    }
}
Bash
1
2
3
4
Person{name='John, age=21}
Person{name='Lee, age=22}
Person{name='Mikle, age=31}
Person{name='Sam, age=25}
2
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
27.03.2019, 17:58
iSmokeJC, действительно, статическое поле можно было... Опять туплю )
0
3 / 3 / 0
Регистрация: 20.12.2018
Сообщений: 232
27.03.2019, 18:00  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
так чтоли?
дааа) круто, спасибо) буду разбирать
а почему одни объекты создаешь:
new Person
а другие
Person p = new Person
в чем разница?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
27.03.2019, 18:03
Разница в том, что Person p = new Person - присваиваешь ссылку на объект переменной. Ну, может тебе где-то нужен именно этот Person. Ну а если не нужен, то и ссылка на него не нужна
0
3 / 3 / 0
Регистрация: 20.12.2018
Сообщений: 232
27.03.2019, 18:04  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Разница в том, что Person p = new Person - присваиваешь ссылку на объект переменной. Ну, может тебе где-то нужен именно этот Person. Ну а если не нужен, то и ссылка на него не нужна
типа ты рандомно как хотел вывел?
просто всегда такие вещи путают и начинаешь задумываться, вдруг именно так нужно)
0
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
27.03.2019, 18:12
А если так? Не пойму в чем подвох, правда у меня список, но суть от этого не меняется.
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
import java.util.ArrayList;
import java.util.List;
 
public class AddAutoToCollection{
 
    public static void main(String[] args){
        Person p1 = new Person("one");
        Person p2 = new Person("two");
        Person p3 = new Person("three");
        Person p4 = new Person("four");
        Person p5 = new Person("five");
        Person.list.forEach(System.out::println);
    }
}
 
class Person {
 
    public static List<Person> list = new ArrayList<>();
    private String name;
    public Person(String name){
        this.name = name;
        list.add(this);
    }
    @Override
    public String toString() {
        return "My name is "+name;
    }
}
Code
1
2
3
4
5
My name is one
My name is two
My name is three
My name is four
My name is five
Добавлено через 3 минуты

Не по теме:

iSmokeJC, Я не подсматривал))))
Пока запустил ИДЭ тут и появилось ваше решение

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.03.2019, 18:12
Помогаю со студенческими работами здесь

Как передать в коллекцию объект класса или пользовательского типа?
Встречаю две взаимоисключающие ошибки: В модуле класса PublicNonCreatable &quot;Supplies&quot; Private x As spls Private supcol As...

Как проверить объект на пустоту или коллекцию на пустоту?
Например, JavaBean, как его проверить, что он пустой? Есть ли универсальная библиотека, которая определяет что объект создан и не...

Как сделать так, чтобы при создании объектов,полю присваивалось значение после вызова метода и этот объект добавлялся в коллекцию
Пробовал через конструктор, ног ничего не получается public Tematic(string ck,ArrayList r ){ ck=c; ...

Дано число R и коллекцию размера N. Преобразовать коллекцию, заменив все ее положительные элементы на число R
Всем доброго времени суток. Вот такая задачка. Дано число R и коллекция размера N. Преобразовать коллекцию, заменив все ее...

Может ли объект-член, или объект-элемент достучаться к содержащему его?
Предположим, class A { ... }; class B { .... A a; ... };


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
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