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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с вектором, не могу понять как оно работает 
:(
    Опции темы
TyVik
Дата 14.4.2006, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В потоке находится следующий код
Код
while (true)
  if (!vector.isEmpty())
    for (j=0;j<vector.size();j++){
      tmpStr = vector.elementAt(j).toString();
      if (tmpStr.indexOf(thisForMeT)==0){
        System.out.println(tmpStr);
        Server.stackIgr.removeElementAt(j);
      }
    }

thisForMe - строка, по которой определяется нужно печатать или нет.
Через раз выдаёт ошибку ArrayIndexOutOfBoundsException на elementAt
PM MAIL   Вверх
LSD
Дата 14.4.2006, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

Репутация: 210
Всего: 538



Очевидно, что между вызовами vector.size() и vector.elementAt(j), другой поток успевает удалить элемент из списка.


--------------------
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   Вверх
JUncle
Дата 15.4.2006, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 162
Регистрация: 6.4.2006
Где: Казань, РФ

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



Цитата(TyVik @ 14.4.2006, 22:15 Найти цитируемый пост)
Код

for (j=0;j<vector.size();j++)

В требованиях к оформлению кода многих компаний есть пункт, гласящий, что в таком случае размер вектора должен вычисляться один раз до цикла. (PS: А в Java тем более можно использовать for each).

А LSD дело говорит, синхронизируйте.

Это сообщение отредактировал(а) JUncle - 15.4.2006, 10:21
--------------------
class JUncle extends Man // singleton{/*...*/}
PM MAIL   Вверх
ALKS
Дата 15.4.2006, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



5 копеек: и вообще, раз уж все-равно синхронизировать - не используйте вектор. ArrayList спасёт отцов русской демократии smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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