powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / java.util.Vector
6 сообщений из 6, страница 1 из 1
java.util.Vector
    #33459508
Фотография 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
java.util.Vector
    #33459519
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще-то, можно пользоваться методами Vector#contains(Object o) и Vector#remove(Object o).
...
Рейтинг: 0 / 0
java.util.Vector
    #33459524
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кроме того, сравнивать строки будет более явно с помощью equals()
...
Рейтинг: 0 / 0
java.util.Vector
    #33459599
Фотография 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
java.util.Vector
    #33459639
Фотография А.Грасоff™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
java.util.Vector
    #33459930
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если метод объявлен как статик, к нему обращаються по имени класса, т.е.
Код: plaintext
1.
2.
3.
 static   void  method(){}
....................
  MyClass.method();
Инача, нужно мутить ссылку на объект, т.е. использовать
Код: plaintext
 new 
и т.д.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / java.util.Vector
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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