2016-01-07 3 views
0

Так что, в основном, я хочу переместить данные объекта на другой объект (Queue jockeying).Перемещение данных одного объекта в другой

скажем, у меня есть

int counter1,counter2 

и у меня есть методы

void enQueue1(object data) 
void enQueue2(object data) 
void deQueue1() 
void deQueue2() 

А, к примеру, я делаю это

obj1.enQueue1("data 1") 
obj2.enQueue2("data 2") 
obj2.enQueue2("data 3") 
obj2.enQueue2("data 4") 

То, что я хочу сделать, это когда разница между counter1 и counter2 is> 1, я хочу переместить данные с большего счетчика, поэтому у меня есть сбалансированный счетчик1 и counter2

Итак, как я могу переместить «данные 4» из obj2 в obj1?

Я написал псевдокод, который выглядит примерно так:

if (counter1 - counter2) == -2 
obj2.deQueue2 
obj1.enQueue(obj2.enQueue("data 4")) 

Как я могу добиться этого в Java-код? Ваша помощь очень важен

Спасибо!

+0

Почему «-2»? Не могли бы вы предоставить нам простой пример для counter1 и counter2? – 0X0nosugar

+0

Да, в основном я не хочу, чтобы в очереди между двумя объектами была разница больше 2. counter1 и counter2 используются для подсчета количества данных внутри обоих объектов, поэтому, например, объект 1 имеет 3 данных, поэтому counter1 будет равно 3. В любом случае, я решил это благодаря ответу Бергера –

+0

как counter1 = 2 и counter2 = 4? как насчет counter1 = 2 и counter2 = 5? Или counter1 = 4 и counter2 = 2? – 0X0nosugar

ответ

1

Пусть ваши deQueue методы возвращают последний вставленный объект, и удалить его из текущего класса, как вы, вероятно, уже делаете:

Object deQueue() 

Тогда

+0

спасибо mate! Я решил это –

Смежные вопросы