Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/16: Рейтинг темы: голосов - 16, средняя оценка - 4.88
 Аватар для Sasuke
1 / 1 / 0
Регистрация: 09.10.2009
Сообщений: 89

Редактирование элемента

25.04.2011, 00:37. Показов 3318. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Подскажите, пожалуйста, будет ли считаться правильным следующее решение.

Java
1
2
3
4
5
class My {
    String str;
    String url;
    int number;
}
Существует список типа My:

Java
1
ArrayList<My> my;
Так же есть еще один список, который создан посредству копирования некоторых элементов из списка my (пускай будет mymy). У меня следующий вопрос: Будет ли считаться корректным редактирование элемента списка my, если я изменю этот же самый элемент в списке mymy? Или для правильной логики мне следует создать полностью новый список, элементы которого не являются ссылкой на элементы списка my, а у которых есть своя собственная отведенная память?..
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.04.2011, 00:37
Ответы с готовыми решениями:

Редактирование элемента в файле
Пишу программу телефонная книга, возникла проблема как удалять и редактировать контакты, дальше того чтобы гулять по списку контактов не...

Редактирование элемента TComboBox
Подскажите, пожалуйста как организовать редактирование Item у ComboBox. Не получается сохранить новое значение в Items ComboBox'a. Пытался...

Редактирование изображения элемента
Поможите советом, в поиске уже был. Есть схема, в ней есть несколько элементов, которые отрисовываются не так, как надо. Нажимаю...

5
 Аватар для usernet009
26 / 26 / 5
Регистрация: 28.12.2009
Сообщений: 85
25.04.2011, 02:40
А ты возьми и попробуй
Тут ведь пару минут дело
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
25.04.2011, 10:37
Sasuke, логику определяете только вы, нам не известна ваша задача и логика. При копировании элементов одного списка в другой список копирует значения элементов, а не их адреса, поэтому проблем быть не должно
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
25.04.2011, 11:57
Цитата Сообщение от M128K145 Посмотреть сообщение
При копировании элементов одного списка в другой список копирует значения элементов, а не их адреса, поэтому проблем быть не должно
Я чего-то в этой жизни не понимаю? При каком копировании ArrayList-ов происходит копирование элементов? И как оно осуществляется?
0
 Аватар для usernet009
26 / 26 / 5
Регистрация: 28.12.2009
Сообщений: 85
25.04.2011, 12:16
Skipy, например, если пишешь вот так
Java
1
ArrayList<My> mymy = new ArrayList<My>( my );
1 - если в my только примитивные данные ( int, float, char... ) или String, то mymy будет содержать новые копии этих переменных
2 - если в my есть ссылочные переменные ( Integer, Float, Ссылки на пользовательские классы ), то в mymy будут содержаться копии ссылок на участки памяти. Вот тут нужно быть осторожным ибо, если что-то менять в my, то это может отразиться на mymy
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
25.04.2011, 13:38
Цитата Сообщение от usernet009 Посмотреть сообщение
1 - если в my только примитивные данные ( int, float, char... ) или String, то mymy будет содержать новые копии этих переменных
В my не может быть примитивных данных, по той простой причине, что ArrayList работает только с объектами. То, что Вы кладете туда int, не означает, что там лежит именно int. Попробуйте создать коллекцию int-ов в виде ArrayList<int> и посмотрите, что Вам компилятор скажет. Коллекция может быть только типа ArrayList<Integer>, а при попытке положить туда int сработает т.н. autoboxing и будет сгенерировала объектная оболочка, которая в итоге и окажется в коллекции.

Что касается строк. Выполните вот такой код:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package ru.skipy.tests;
 
import java.util.ArrayList;
 
/**
 * ListCopyTest
 *
 * @author Eugene Matyushkin aka Skipy
 * @since 25.04.2011
 */
public class ListCopyTest {
 
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add(Long.toString(System.currentTimeMillis()));
        ArrayList<String> copy = new ArrayList<String>(list);
        System.out.println(list.get(0) == copy.get(0));
    }
}
И посмотрите на результат. Вывод true означает, что ссылки равны и копии объекта не делалось (я специально не использовал строковый литерал, чтобы исключить попадание строки в пул).

Более того, копия и не может создаваться, ввиду того, что не все объекты поддерживают клонирование, не все имеют копирующий конструктор и не все поддерживают сериализацию. При создании копии коллекции новая коллекция будет содержать ссылки на старые объекты. И все изменения, сделанные в объектах в новой коллекции, будут видны и в объектах в старой коллекции.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.04.2011, 13:38
Помогаю со студенческими работами здесь

Редактирование элемента button
Уважаемые !) Доброго времени суток, дайте совет как быть то. Есть рабочая программа WindowsForms , и вот захотел я сделать прозрачный...

Редактирование элемента в файле
Пишу программу телефонная книга, возникла проблема как удалять и редактировать контакты, дальше того чтобы гулять по списку контактов не...

Delphi 7 редактирование элемента DBgrid
Вечер добрый. По заголовку очередная школьная проблема, но это не так: Вот код и скрин формы, в которой проблема. LookUpCombobox -...

Создание элемента и его редактирование
Как правильно создать элемент и редактировать его? Например, создаю input внутри div, потом при нажатии на input меняю атрибут...

Редактирование элемента инфоблока не из админки
Друзья, подскажите, пожалуйста. Я авторизуюсь на сайте с Битрикс-Стандарт, ставлю режим правки и не могу отредактировать элементы...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru