Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> массив с неизвестной длинной в java, и многое другое 
V
    Опции темы
NLspieler
Дата 22.2.2010, 03:21 (ссылка)    | (голосов:8) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 619
Регистрация: 13.10.2008
Где: Берлин

Репутация: нет
Всего: 19



Какого было моё разочарования, когда я узнал, что
массивы в java мало того, что имеют только нумерованные 0...n ключи,
так еще и имеют фиксированную длину n.
Про то, что они не могут быть многомерными, я вообще молчу.

Сразу зафиксировать всю необходимую для исполнения программы память - это конечно же очень хорошо и экономно. 
Но в очень большом количестве задач, совершенно неизвестно, сколько элементов будет у нашего бедующего массива.

Например, представим такую задачу, пользователь вводит в консоле имена и возраста, 
после каждого ввода имени, программа спрашивает, хочет ли пользователь ввести
еще одно имя, или завершить ввод, и вывести все введенные имена.

Двухмерный ассоциативный массив, с неопределенной длинной подошел бы для этого как нельзя лучше.
Хотя нет, можно обойтись и двумя массивами.

String [] name = new String [неизвестная длинна] ;
int [] how_old = new int [неизвестная длинна] ;

Но как сделать массив с неопределенной длинной так до сих пор для меня остаётся загадкой.


Следующий вопрос, можно ли в java-массив засунуть дерево?
В таких языках как javascript или php это не составляет никакого труда. 
В JAVе же никаких очевидных способов мне пока не видно.


Как java-программисты справляются с такими серьёзными проблемами?

PM MAIL   Вверх
Vasay
Дата 22.2.2010, 03:43 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 11
Всего: 73



Цитата

Про то, что они не могут быть многомерными, я вообще молчу.


Могут.

Код

        String[][] names = {{"Mr. ", "Mrs. ", "Ms. "}, {"Smith", "Jones"}};


Цитата

массивы в java мало того, что имеют только нумерованные 0...n ключи,


На то они и массивы.

Кроме массивов в Java есть
-HashMap
-TreeMap
-Collections 


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
Exai1e
Дата 22.2.2010, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 908
Регистрация: 3.12.2006
Где: Moscow

Репутация: 1
Всего: 30



Цитата(NLspieler @  22.2.2010,  03:21 Найти цитируемый пост)

Как java-программисты справляются с такими серьёзными проблемами?

использовать List<T>


--------------------
"Решение зависит от выбранного геморроя" © Snowy
"у нас как в армии - либо работает, либо так и задумано"
PM MAIL ICQ   Вверх
batigoal
Дата 22.2.2010, 11:48 (ссылка) |   (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



NLspieler, коллекции в Java представлены достаточно обширно, как в стандартном API, так и в сторонних либах. Кури мануал: Java Collections Tutorial


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Fieral
Дата 22.2.2010, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 250
Регистрация: 10.12.2007

Репутация: нет
Всего: 1



--------------------
Если собака свернулась калачиком, значит будет дождь, а если сидит выпучив глаза, значит у неё запор.
PM MAIL   Вверх
dorogoyIV
Дата 22.2.2010, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 3
Всего: 46



Цитата(NLspieler @  22.2.2010,  03:21 Найти цитируемый пост)
Какого было моё разочарования

 smile  прикольно, у меня совершенно обратное мнение  smile 
джава написана на ошибках первых языков программирования, там все путем...
мануал совершенно понятный (по крайней мере для меня)
мне вот щас приходится на бейсике писать, так я в шоке от бейсика после джавы  smile 
PM MAIL   Вверх
LSD
Дата 23.2.2010, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15708
Регистрация: 24.3.2004

Репутация: 209
Всего: 537



Цитата(NLspieler @  22.2.2010,  03:21 Найти цитируемый пост)
Как java-программисты справляются с такими серьёзными проблемами?

Читают FAQ, книги, гугл прежде чем задавать дурацкие вопросы.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
NLspieler
Дата 23.2.2010, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 619
Регистрация: 13.10.2008
Где: Берлин

Репутация: нет
Всего: 19



Спасибо всем за помощь.
Я уж и правда думал, что все это в java нереализуемо, 
или реализуемо, но с массой сложностей и переподвыпертов,

оказалось, что я не прав и все это совсем не сложно и давно уже предусмотренно
PM MAIL   Вверх
Temdegon
Дата 5.3.2010, 02:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.10.2008
Где: Minsk

Репутация: 7
Всего: 9



Все непонятки из-за того, что в php принято называть массивом то, что правильнее было бы назвать коллекцией =)
Кста, может кто-то натыкался на какие-нить статьи про то, как в php устроен array и строки? К примеру, является ли строка в PHP изменяемой? Как сильно реализация отличается от джавовской String? Ну а про "чудо-массив", в который можно пихать все что хочешь, тоже хотелось бы узнать всякие подробности. Должна же быть какая-то плата за его универсальность. Сколько не гуглил и спрашивал у знакомых программистов, все только плечами пожимают. А в исходниках рыться, что бы с этим разобраться, как то не очень хочется...
PM MAIL   Вверх
MaxPayneC
Дата 5.3.2010, 02:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 324
Регистрация: 18.2.2006

Репутация: 5
Всего: 9



В
Код

List list = new ArrayList();

можно пихать все что хочешь, кроме простых типов smile Определенные трудности правда составит разобраться с доставаемыми объектами...
PM   Вверх
batigoal
Дата 5.3.2010, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Цитата(Temdegon @  5.3.2010,  03:08 Найти цитируемый пост)
Ну а про "чудо-массив", в который можно пихать все что хочешь, тоже хотелось бы узнать всякие подробности.

А зачем?


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
_Y_
Дата 5.3.2010, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 5
Всего: 34



Цитата(batigoal @ 5.3.2010,  08:29)
Цитата(Temdegon @  5.3.2010,  03:08 Найти цитируемый пост)
"чудо-массив", в который можно пихать все что хочешь

А зачем?

Как зачем? Ну, например, создать мусорный ящик (Recycle Bin). В игрушке какой-нибудь, или еще где.

Кстати, раз уж говорим о вещах простых, следует напомнить, что именно для сабжа и существует ArrayList




--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
serger
Дата 5.3.2010, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 19.6.2007
Где: Ижевск

Репутация: 1
Всего: 5



Цитата(Temdegon @  5.3.2010,  04:08 Найти цитируемый пост)
Кста, может кто-то натыкался на какие-нить статьи про то, как в php устроен array и строки? К примеру, является ли строка в PHP изменяемой? Как сильно реализация отличается от джавовской String? 

Цитата(Temdegon @  5.3.2010,  04:08 Найти цитируемый пост)
Сколько не гуглил и спрашивал у знакомых программистов, все только плечами пожимают.

Просто уровень разработчиков не торт..  smile 



--------------------
упс!
PM MAIL WWW Skype GTalk Jabber   Вверх
batigoal
Дата 5.3.2010, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Цитата(_Y_ @  5.3.2010,  10:13 Найти цитируемый пост)
Как зачем? Ну, например, создать мусорный ящик (Recycle Bin). В игрушке какой-нибудь, или еще где.

Пример хороший, согласен с ним. Но в реальной разработке, ну вот ни разу не было у меня необходимости создавать универсальный массив, практически всегда его можно параметризовать. Имхо, в 90% случаев использование коллекций с непараметризованным типом в прикладном программировании есть недочет дизайна.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
_Y_
Дата 5.3.2010, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 5
Всего: 34



Цитата(batigoal @ 5.3.2010,  11:38)
Цитата(_Y_ @  5.3.2010,  10:13 Найти цитируемый пост)
...мусорный ящик...

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

Абсолюто согласен. Так что, начинающие, обратите внимание:
использование коллекций с непараметризованным типом есть недочет 


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1758 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.