![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| 14SatanA88 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 13.5.2010 Репутация: нет Всего: 5 |
Доброго времени суток, уважаемые программеры.
Есть структура
И есть ArrayList
Проходя по некоторому тексту, я читаю слово, записываю его в структуру. Структуру сую в массив. Вопрос такой: перед тем как добавить слово, нужно проверить, есть ли оно в массиве arr. Если слова нет то создать новую структуру, записать ее в arr. А если есть, то вытянуть его структуру, отредактировать (то есть ++ количество, указать страницу, на которой слово найдено) Заранее спасибо. Это сообщение отредактировал(а) 14SatanA88 - 20.7.2011, 10:50 |
||||
|
|||||
| HalkaR |
|
|||
![]() Пуфыстый назгул ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2132 Регистрация: 8.12.2002 Где: В Москве Репутация: 5 Всего: 42 |
Если хотите оптимизировать процесс - используйте любую реализацию HashSet. Стандартная реализация появилась в .Net 3.0. Если у вас более ранняя версия можно воспользоваться сетом из Wintellect PowerCollections.
|
|||
|
||||
| 14SatanA88 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 13.5.2010 Репутация: нет Всего: 5 |
HalkaR, за совет спасибо.
но оптимизация не имеет смысла. я понимаю, что способов реализации достаточно, но это просто лаба, и мне важны скорей сроки написания, нежели совершенство кода. так что все сводится к вопросу как найти структуру в ArrayList и поменять ее поля? |
|||
|
||||
| Суровый |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 30.4.2009 Репутация: 1 Всего: 2 |
Можно было бы найти структуру с помощью
если бы не дополнительные поля, которые невозможно отследить. Поэтому, чтобы найти структуру по содержанию одного поля, следует использовать следующий код
Это сообщение отредактировал(а) Суровый - 20.7.2011, 11:10 |
||||
|
|||||
| YurIOs |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 28.6.2011 Где: Ukraine Репутация: нет Всего: 1 |
Я бы сделал так
|
|||
|
||||
| Суровый |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 30.4.2009 Репутация: 1 Всего: 2 |
YurIOs,
Я бы тоже использовал нечто похожее (в данном случае использовал бы Hashtable) Но т.к. задание просит использовать ArrayList, приходится отталкиваться от этого |
|||
|
||||
| Fortnox |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 373 Регистрация: 31.10.2008 Где: Ростов-на-Дону Репутация: 2 Всего: 22 |
Э, банальный цикл for?
|
|||
|
||||
| YurIOs |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 28.6.2011 Где: Ukraine Репутация: нет Всего: 1 |
2 Суровый
Ну уж если нужно использовать только ArrayList тогда ваш вариант решения в самый раз А разве только Hashtable использует технику хеш таблиц, или и все динамические коллекции в фреймворке? |
|||
|
||||
| 14SatanA88 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 13.5.2010 Репутация: нет Всего: 5 |
вроде бы) если не получится с ArrayList, то придется использовать что-либо другое. щас через пару часов по работе прогу допишу, и попробую ваши предожения. |
|||
|
||||
| Суровый |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 30.4.2009 Репутация: 1 Всего: 2 |
14SatanA88,
В общем-то, если не получится или не захочешь использовать ArrayList, то рекомендую использовать Hashtable:
Добавлено через 5 минут и 45 секунд YurIOs, я привык использовать Hashtable только потому, что в нем не нужно указывать тип добавляемых объектов А по вопросу: да, реализация хэш-таблиц выполнена только в Hashtable, неспроста он так называется |
|||
|
||||
| YurIOs |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 28.6.2011 Где: Ukraine Репутация: нет Всего: 1 |
Если использовать обобщения то не будет необходимости использовать приведение типов Только что смотрел документацию на MSDN: обобщенная коллекция Dictionary(TKey, TValue) также использует технологию хеш-таблиц а значит также эффективна |
|||
|
||||
| 14SatanA88 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 13.5.2010 Репутация: нет Всего: 5 |
Суровый, возьму на заметку. Тем более что у меня следующая лаба как раз по Hashtable.
|
|||
|
||||
| 14SatanA88 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 13.5.2010 Репутация: нет Всего: 5 |
Fortnox, хотел попробовать ваш вариант, потому что он самый короткий, но среда ругается на var.
У меня студия 2005. Может var еще не поддерживается в этой версии языка? |
|||
|
||||
| 14SatanA88 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 13.5.2010 Репутация: нет Всего: 5 |
Суровый, ваш метод работает, но не совсем верно.
Повторений слов нет, но каждое слово с количеством 1 и единственной страницей, там где оно первый раз замечено Добавлено @ 14:36 все, сделал. забыл изменения сохранить в найденном слове. всем огромное спасибо. вопрос закрыт. Это сообщение отредактировал(а) 14SatanA88 - 21.7.2011, 08:22 |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |