![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
00100 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 30.3.2008 Репутация: нет Всего: нет |
Здравствуйте! Есть массив double[][] masA = new double[2][5]; Вопрос заключается в том что когда я сравниваю элементы массива то мне необходимо удалять строки массива (или элемент), но как это сделать я не пойму если я присваиваю элементу null, то пишет что ошибка.
|
|||
|
||||
mbasil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 2 Всего: 13 |
Вы не можете присвоить примитивной переменной (а элемент вашего массива это примитив) null значение.
В таком случае надо либо присвоить какое-либо незначащее значение с точки зрения приложения значение. Но если вам задачу поставил преподаватель, он скорее всего имел в виду, что вы при удалении сдвините весь хвост массива для того, чтобы этот элемент просто исчез. |
|||
|
||||
00100 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 30.3.2008 Репутация: нет Всего: нет |
Да нет преподаватель здесь не причем ![]() Это сообщение отредактировал(а) 00100 - 17.10.2008, 20:14 |
|||
|
||||
mbasil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 2 Всего: 13 |
Значит надо сдвигать хвост массива.
Может в этой ситуации лучше использовать коллекции, например Set, не вставляет дубликаты. |
|||
|
||||
00100 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 30.3.2008 Репутация: нет Всего: нет |
вот смотрите
из массива допустим я удалил 2 элемент но как мне теперь его длину уменьшить? |
||||
|
|||||
duk |
|
|||
![]() Some Object ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 19.7.2007 Репутация: 4 Всего: 4 |
Посмотри ArrayList, там есть все эти штуки
|
|||
|
||||
biguser |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 29.8.2007 Репутация: нет Всего: нет |
массивы задаются фиксированным размером изначально и нельзя потом менять его размер. тут надо ввести какое нибудь значение которое будет означать что этот элемент удален. например если вы знаете что массив точно состоит из натуральных чисел, то любое отрицательное число будет свидетельствовать о том что элемент не доступен.
если надо сделать всё таки такую возможность нужно использовать уже List->ArrayList и т.д. Это сообщение отредактировал(а) biguser - 17.10.2008, 23:24 |
|||
|
||||
Keyo |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 10.4.2008 Репутация: нет Всего: нет |
наверное лучше связанный список LinkedList
|
|||
|
||||
Dims |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1016 Регистрация: 21.11.2006 Репутация: 4 Всего: 11 |
Чё-то я не понял. Одномногомерный массив -- это массив массивов. На самом последнем уровне у нас конечный тип, если он не ссылочный, то ему, конечно, null присвоить нельзя. Ну а не на конечном уровне тип ссылочный -- массив меньшей размерности. Ему вполне можно присвоить null.
Вот такой код
выдаёт вот это 0: 0,1,2,3,4 1: null То есть, строка совершенно нормально удалилась. Отсюда напрашивается решение (если есть желание убивать строки и элементы присваиванием null) -- добавить ещё одну размерность длины 1. double[][][] masA = new double[2][5][1]; чтобы обратиться к элементу 1-0 надо будет писать masA[1][0][0] то есть, всегда добавлять в конце [0]. Это сообщение отредактировал(а) Dims - 18.10.2008, 13:16 |
|||
|
||||
Temdegon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.10.2008 Где: Minsk Репутация: 7 Всего: 9 |
А почему нельзя просто использовать классы-обертки для примитивных типов? Испоьзуй Integer вместо int. Тем более начиная с 5-й Java работать с ними удобно блягодаря autoBoxing.
Это сообщение отредактировал(а) Temdegon - 18.10.2008, 16:15 |
|||
|
||||
dorogoyIV |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 26.3.2007 Репутация: 3 Всего: 46 |
кажется все забыли про:
![]() |
|||
|
||||
00100 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 30.3.2008 Репутация: нет Всего: нет |
dorogoyIV, Temdegon, Dims, Keyo, biguser, duk Спасибо Вам всем огромное! Реализовал я через спски и просто удалением и смещением массива все понял, вопрос закрыт...
p.s. новые вопросы обязательно будут ![]() |
|||
|
||||
Исполнитель234 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 3.7.2008 Где: Украина Репутация: нет Всего: 1 |
Помогите найти идеальную реализацию.
Задачка такова: нужно удалить все потонувшие лодки
Можно ли так удалять элементы? Или можно оптимизировать как-то? В интернете гуглил, нашел что в векторе элементы перенумеровываются сразу после удаления Стало быть вектор использовать нельзя, нужен линкед лист? --------------------
Тестирую UI, консультирую по вопросам юзабилити, проектирую, составляю грамотные ТЗ. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |