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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Симметричная разность 
:(
    Опции темы
ElectricalStorm
Дата 26.2.2004, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Подскажите как реализовать симметричную разность двух массивов ?


--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
Paradox
Дата 26.2.2004, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



а это что такое? напомни


--------------------
---
PM MAIL WWW   Вверх
ElectricalStorm
Дата 26.2.2004, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



есть массивы
A = {1, 2, 3}
B = {1, 2, 4}
результирующий массив должен содержать C = {3, 4} тоесть
C = (A - B)+ (B- A)





--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
DarkDS
Дата 26.2.2004, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 748
Регистрация: 6.5.2003
Где: Таллинн, Эстония

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



Для массивов объектов можно так:
Код

public Object[] r( Object[] first, Object[] second )
{
 ArrayList list = new ArrayList();
 for( int i=0; i < first.length; list.add( first[i++] ) );
 for( int i=0; i < second.length; list.remove( second[i++] ) );
 return list.toArray();
}

PM MAIL   Вверх
ElectricalStorm
Дата 26.2.2004, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



DarkDS это у Вас не симметричная получилось


--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
AntonSaburov
Дата 26.2.2004, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

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



Только надо еще добавить те элементы, которых нет в first и они есть в second.
PM MAIL WWW ICQ   Вверх
ElectricalStorm
Дата 26.2.2004, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



не понимаю sad.gif
может кто-нибудь "на пальцах" или псевдокодом расписать алгоритм


--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
Kurt
Дата 27.2.2004, 04:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


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

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



Вот тебе готовый код.
Корявый, правда - там количество элементов жестко задано, инициализация массивов явно в извращенном виде, но основная мысль, я надеюсь, понятна..
Просто сейчас 4 часа ночи и голова не работает на должном уровне. smile.gif
Итак:
Код

import java.util.*;
class SimmArr{

public static void main(String[] s){
       // заполнение массивов:
       Integer[] A = new Integer[3];    
A[0] = new Integer(1);
       A[1] = new Integer(2);
       A[2] = new Integer(3);
Integer[] B = new Integer[3];    
B[0] = new Integer(1);
       B[1] = new Integer(2);
       B[2] = new Integer(4);
ArrayList A_B = new ArrayList();
       ArrayList B_A = new ArrayList();
       //получаем элементы, к-е есть в массиве А, не нет в массиве В:
for (int i=0; i<3; i++){
 A_B.add(A[i]);
};
for (int i=0; i<3; i++){
 A_B.remove(B[i]);
};
       //получаем элементы, к-е есть в массиве В, не нет в массиве А:
for (int i=0; i<3; i++){
 B_A.add(B[i]);
};
for (int i=0; i<3; i++){
 B_A.remove(A[i]);
};

       //составляем массив (здесь используется А_В), в к-м СУММА массивов А_В и В_А (т.е добавляем элементы, к-е есть во 2-м массиве, но нет в превом)
for (int i=0; i<B_A.size(); i++){
           if (!A_B.contains(B_A.get(i))){
               A_B.add(B_A.get(i));
           }
               
           }
       System.out.println(A_B.toString());
       return;
       };

}


Вот что происходит с людьми после 4-х.. smile.gif
Я тут использовал Integer - чисто для примера..
Помогло? smile.gif




--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
ElectricalStorm
Дата 27.2.2004, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



спасибо !! Все оказалось довольно просто !! что -то вчера голова вообще не хотела думать ! smile.gif


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

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

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


 




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


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

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