Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / java.util.Vector / 6 сообщений из 6, страница 1 из 1
27.12.2005, 13:54
    #33459508
Vector
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java.util.Vector
Добрый день.
Не могу разобраться со своей проблемой.
Есть экземпляр класса java.util.Vector, который объявляется и
создается так:

Код: plaintext
1.
2.
3.
java.util.Vector<String> openedFrames;
...
openedFrames= new  java.util.Vector();

Я добавляю в него элементы, с этим проблем вроде нет:
Код: plaintext
1.
2.
3.
     public   void  addOpenedFrame(String o){
        openedFrames.add(o);
    }

Проверяю, есть ли элемент в векторе так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
     public   boolean  checkIfFrameOpened(String o){
        String str="";
         for ( int  i= 0 ; i<openedFrames.size(); i++){
            str=openedFrames.get(i);
             if (openedFrames.get(i).compareTo(o)== 0 ){  return  true; }
        }
         return  false;
    }

И удаляю элемент таким образом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
     public   void  removeOpenedFrame(String o){
        String str="";
         for ( int  i= 0 ; i<openedFrames.size(); i++){
            str=openedFrames.get(i);
             if (str.compareTo(o)== 0 ){ 
                openedFrames.remove(i); 
                 break ;
            }
        }
    }

После добавления элемента как бы он присутствует в хранилище.
Удаляется тоже без исключений. А вот после удаления, вызывая проверку
checkIfFrameOpened(), проходя в пошаговом режиме, получаю, что эелемент-то этот вовсе не удалился!!! Он был один (добавлялся только раз), и остался один, именно этот объект. Хотя я проверял фунция remove(i) отрабатывается.

В чем дело? Может не то делаю???
Кто знает подсажите.

С уважением Vector
...
Рейтинг: 0 / 0
27.12.2005, 13:58
    #33459519
А.Грасоff™
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java.util.Vector
вообще-то, можно пользоваться методами Vector#contains(Object o) и Vector#remove(Object o).
...
Рейтинг: 0 / 0
27.12.2005, 13:59
    #33459524
А.Грасоff™
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java.util.Vector
кроме того, сравнивать строки будет более явно с помощью equals()
...
Рейтинг: 0 / 0
27.12.2005, 14:25
    #33459599
Vector
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java.util.Vector
Чтобы использовать Vector.remove(Object o),
надо как минимум иметь ссылку на этот объект.
Как я понимаю, в этом случае идет сравнение по указателю на объект, а не по его содержимому.
У меня же этот указатель находится только в данном векторе.
Я пробовал вариант:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
     public   void  removeOpenedFrame(String o){
        String str="";
         for ( int  i= 0 ; i<openedFrames.size(); i++){
            str=openedFrames.get(i);
             if (str.compareTo(o)== 0 ){ 
                Object ob=(Object)openedFrames.get(i); 
                openedFrames.remove(ob); 
                 break ;
            }
        }
    }

Эффект тот же..
Объект почему то остается
...
Рейтинг: 0 / 0
27.12.2005, 14:37
    #33459639
А.Грасоff™
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java.util.Vector
VectorЧтобы использовать Vector.remove(Object o), надо как минимум иметь ссылку на этот объект.
может, лучше почитать javadoc?

javadoc
public boolean remove(Object o)

Removes the first occurrence of the specified element in this Vector
If the Vector does not contain the element, it is unchanged. More
formally, removes the element with the lowest index i such
that (o==null ? get(i)==null : o.equals(get(i))) (if such an
element exists).
...
Рейтинг: 0 / 0
27.12.2005, 16:04
    #33459930
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java.util.Vector
Если метод объявлен как статик, к нему обращаються по имени класса, т.е.
Код: plaintext
1.
2.
3.
 static   void  method(){}
....................
  MyClass.method();
Инача, нужно мутить ссылку на объект, т.е. использовать
Код: plaintext
 new 
и т.д.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / java.util.Vector / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]