Как обменять значения двух переменных?

153
14 августа 2018, 10:40

Как можно обменять значения двух переменных в Java?
(кроме таких способов):

int a = 2;
int b = 3;
int tmp;
tmp = a;
a = b;`
b = tmp;
a = a + b;
b = a - b;
a = a - b;
Answer 1

Через исключающее или, только эта операция будет либо сопоставима по ресурсам, либо перевышать ее

Алгоритм обмена при помощи исключающего ИЛИ

Answer 2

Для обмена целочисленных переменных алгоритм обмена при помощи исключающего ИЛИ (без ввода третьей переменной) выглядит следующим образом:

int a = -5;
int b = 9;
a ^= b;
b ^= a;
a ^= b;

В этом случае после выполнения программы a будет равно 9, а b будет равно -5.

Можно, впрочем, сделать то же самое, только ещё короче:

a = a ^ b ^ (b = a);

Обмен строк без ввода третьей переменной можно сделать так:

String a = "first";
String b = "second";
a = a + b;
b = a.substring(0, (a.length() - b.length()));
a = a.substring(b.length());
READ ALSO
Не работают java script в Java Server Faces

Не работают java script в Java Server Faces

Делаю сайт с помощью технологии JSF, у меня есть template, который имеет следующий код:

183
Стиль javaFX menuItem

Стиль javaFX menuItem

Подскажите, как исправить такую проблему через cssНужно чтобы при наведении на название урока, цвет основного элемента был не синим а тем,...

135
Как скачать blob видео?

Как скачать blob видео?

Есть видео с src="blob:https://wwwyoutube

1036
Проблема очистки canvas

Проблема очистки canvas

Пытаюсь создать некоторое подобие игры на JSСделал объект (игрока) и препятствия (их координаты и размеры рандомизируются) на канвасе

219