![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
tolet |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 24.9.2006 Где: Москва Репутация: нет Всего: нет |
Добрый всем день!
Вопрос вот какой: Использую в коде класса ArrayList(), но не могу понять что за параметр "Е" необходимо указывать при инициализации. Подскажите пожалуйста как корректно инициализировать данный массив? Приведу сразу код класса, использующего данный массив:
|
|||
|
||||
Grelloo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 153 Регистрация: 18.3.2006 Где: г. Екатеринбург Репутация: нет Всего: нет |
Зайди на ссылку http://vingrad.ru/JAVA-ART-001433 и прочитай пункт 1. Думаю это как раз то, что тебе нужно
|
|||
|
||||
tolet |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 24.9.2006 Где: Москва Репутация: нет Всего: нет |
Grelloo,
Спасибо за ссылочку. Подправил. Получилось следующее:
А в консоли пишет следующее: Exception in thread "main" java.lang.Error: Unresolved compilation problem: The method add(String) in the type ArrayList<String> is not applicable for the arguments (DefineData) at GetData.<init>(GetData.java:18) at PRE.main(PRE.java:12) Я к сожалению, в силу своего малого опыта программирования, не могу пока разобраться в ступоре. Может кто еще что-нибудь подскажет? Заранее благодарен за ответы. |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
Твой объект класса ArrayList<String> может хранить только String. Это и обозначается с помощью <String>. Ты же в 18 строке пытаешься добавить в него объект DefineData (это кстати что за класс?). Поменяй ArrayList<String> на ArrayList<DefineData>.
|
|||
|
||||
tolet |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 24.9.2006 Где: Москва Репутация: нет Всего: нет |
powerOn,
Вот класс DrfineData
Сейчас попробую сделать так как ты посоветовал. Добавлено @ 17:42 Все - заработало ! Всем огромное спасибо за участие. |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
пожалуйста.
![]() |
|||
|
||||
tolet |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 24.9.2006 Где: Москва Репутация: нет Всего: нет |
Добрый день.
Снова нужна помощь с тем же самым вопросом. Я немного переделал тот код, который помещал в начале поста, и у меня опять возникла проблема с ArrayList/
помогите пожалуйста разобраться что к чему!!! |
|||
|
||||
powerOn |
|
||||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
попробуйте убрать знак =
|
||||
|
|||||
tolet |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 24.9.2006 Где: Москва Репутация: нет Всего: нет |
Спасибо - помогло
А есть где-нибудь про ArrayList на русском почитать? (только желательно, чтобы материал был для начинающих) Спасибо |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
У нас в FAQ есть некоторые материалы по коллекциям.
|
|||
|
||||
NotGonnaGetUs |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 25.2.2005 Где: Москва Репутация: 4 Всего: 12 |
Понимаю, что прозвучавшие вопросы относятся ко дням минувшим, но всё-таки...
Глядя на DefineData не удержался. Почему не сделать по простому?
Разве так не проще? Отбросив пустые строки, получится всего в полтора раза больше, чем в исходном примере, но при этом не нужно изобретать дикие названия или вычленять какая строка, что значит. Кроме того, все эти объекты можно повторно использовать в других контекстах. Параметры (MFN, MFP);(HFN, HFP);(CFN, CFP);(BFN, BFP);(PFN, PMN, PLN); вообще не должны были дойти до конструктора. Сама по себе нужда в DefineData сомнительна. Photo вполне может содержать всю необходимую информацию. |
|||
|
||||
tolet |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 24.9.2006 Где: Москва Репутация: нет Всего: нет |
Я тут плотненько занимался этим фремом и вот что у меня сейчас имеется:
но есть у меня сомнения, что вот в этом месте у меня все правильно сделано. Взгляните, плиз, может подскажете чего толкового новичку ![]()
Добавлю только одно - программа не запускается в виду того, что файлы с картинками найти (или открыть) не может |
||||
|
|||||
y3u |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 9.9.2006 Где: Москва Репутация: 5 Всего: 13 |
а нельзя было сделать нормальный объект, который будет заполняться при парсинге, а не складывать все в массивы? Спорим, что через неделю сам забудешь, что в этом классе где лежит и для чего... Это все хозяйство переделать бы на нормальные объекты и коллекции
-------------------- В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
|||
|
||||
tolet |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 84 Регистрация: 24.9.2006 Где: Москва Репутация: нет Всего: нет |
y3u, да я бы с удовольствием переделал, вот только знаний еще маловато, чтобы все правильно и как положено делать.
|
|||
|
||||
NotGonnaGetUs |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 25.2.2005 Где: Москва Репутация: 4 Всего: 12 |
Я правильно понимаю, что в photosdb.txt лежит ровно 6 описаний картинок?
![]()
1. Не дублировать код (pfn[1] = photosdb1[0]; и pfn[2] = photosdb2[0]; - дублирование). 2. Минимизировать количество "договорной" информации, делать её очевидной (н-р знание о том, что pfn[2] и pln[2] описывают картинку номер 2, а не две не зависимых величины - не очень очевидно. всё было бы очевидно, если pfn и pln были полями одного класса и имели ясные имена) 3. Минимизировать области видимости переменных/данных (никаких static переменных, можно не использовать переменную - нужно не использовать). Достаточно следовать только этим простым правилам, чтобы качество кода радикально улучшилось. Времени на рефакторинг сейчас нет. Попробуй сам: 1. Сделать переменные private static String[] photosdb0; private static String[] photosdb1; private static String[] photosdb2; private static String[] photosdb3; private static String[] photosdb4; private static String[] photosdb5; и private static ImageIcon main, hover, click, big; локальными для тех методов, где они используются. 2. Убери дублирование в методе defineData(). Вместо photosdb0 = catalogue.get(P0); photosdb1 = catalogue.get(P1); ... pfn[0] = photosdb0[0]; pfn[1] = photosdb1[0]; ... pln[0] = photosdb0[1]; pln[1] = photosdb1[1]; ... должно стать: for(int i=0; i< catalogue.size(); i++) { String[] photosdb = catalogue.get(i); pfn[i] = photosdb[0] pln[i] = photosdb0[1]; ... } 3. Замени массивы pfn, pln, etc на один массив из объектов с полями pfn, pln (помести их в класс data, например) . (затем этот класс можно привести к чему-то похожему на код из моего первого сообщения) 4. После этого нужно знаяться всеми этими p0,p5. Нужно явно обозначить абстрацию: Существует N (=catalogue.size()?) картинок. Из них только M(=4?) (начиная с индекса K) находятся в preview буфере. Допустимые операции: сдвинуть буфер в лево, сдвинуть буфер в право, определить текущее значение К. Создаёшь такой объектик. Заменяешь на им p0....p5. 5. ... (Предела совершенству не существует ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |