Введение в обмен в Java

Как мы все знаем, Java является одним из самых популярных языков в разработке программного обеспечения. Понимание некоторых концепций, которые часто используются, очень важно и может помочь программисту использовать их даже при решении больших задач. Обмен - одна из концепций, которая часто используется в программах. Обмен означает обмен значениями переменных. Это делается с данными в памяти. Обмен может быть выполнен с помощью одной временной переменной или без использования временной переменной. Большинство алгоритмов сортировки и поиска используют обмен значениями переменных. В этой теме мы узнаем об обмене в Java.

Обмен двух чисел в Java

Давайте посмотрим с помощью некоторого примера

Случай 1: обмен числами с использованием временной переменной

public class Swap2Numbers
(
public static void main(String() args)
(
int num1=10;
int num2 =20;
// Printing values of numbers before swapping in order to see the change
System.out.println("Original values before swapping are:");
System.out.println("Value of number 1 is " +num1); System.out.println("Value of number 2 is " +num2);
// Value of num1, ie 10 is assigned to temp variable int temp = num1;
// Value of num2, ie 20 is assigned to num1 variable num1 = num2;
// Value of temp variable, ie 10 (assigned by num1) is assigned to num2
num2 = temp;
// Printing values of numbers after swapping in order to see the change
System.out.println("Values after swapping are:");
System.out.println("Value of number 1 is " +num1);
System.out.println("Value of number 2 is " +num2);
)
)

Выход:

Исходные значения перед заменой:
Значение числа 1 составляет 10
Значение числа 2 равно 20 Значения после замены:
Значение числа 1 составляет 20
Значение числа 2 равно 10

объяснение

В приведенной выше программе у нас было две переменные с именами num1 и num2 со значениями 10 и 20 соответственно. Временная переменная с именем temp используется с тем же типом данных переменных num1 и num2. Обмен обрабатывается в 3 этапа:

  1. Значение 'num1' (то есть 10) присваивается временной переменной 'temp', поэтому теперь значение 'temp' равно 10.
  2. Значение 'num2' (то есть 20) присваивается переменной 'num1', т.е. теперь значение переменной 'num1' равно 20.
  3. Значение переменной «temp» (т. Е. 10), назначенное на шаге 1, теперь присваивается переменной «num 2», то есть значение переменной «num2» теперь становится равным 10.

Наконец, значения переменных меняются местами или меняются местами, а измененные значения печатаются на консоли.

Случай 2: замена двух чисел без использования временной переменной

public class SwapNumbers
(
public static void main(String() args)
(
int num1= 10; int num2= 20;
// Printing values of numbers before swapping in order to see the change
System.out.println("Original values before swapping are:");
System.out.println("Value of number 1 is " +num1); System.out.println("Value of number 2 is " +num2);
num1 = num1- num2; num2 = num1 +num2;
num1 = num2- num1;
// Printing values of numbers after swapping in order to see the change
System.out.println("Values after swapping are:");
System.out.println("Value of number 1 is " +num1); System.out.println("Value of number 2 is " +num2);
)
)

Выход:

Исходные значения перед заменой:
Значение числа 1 составляет 10
Значение числа 2 равно 20 Значения после замены:
Значение числа 1 составляет 20
Значение числа 2 равно 10

объяснение

В приведенном выше примере, простая математика сопровождается обменом числами, что делается в 3 шага:

  1. Значение num1-num2 (то есть 10-20 = -10) хранится в переменной 'num1'. Теперь num1 = -10.
  2. Значение num1 + num2 (т.е. -10 + 20 = 10) хранится в переменной 'num2'. Теперь num2 = 10.
  3. Значение num2-num1 (т. Е. 10 - (-10)) = 20) сохраняется в переменной 'num1'. Теперь num1 = 20.

Обмен трех чисел на Java

Давайте изучим обмен трех номеров с помощью некоторого примера

Случай 1: обмен числами без использования временной переменной

public class Swap3Numbers
(
public static void main(String() args)
(
int num1= 10; int num2= 20; int num3= 30;
// Printing values of numbers before swapping in order to see the change
System.out.println("Original values before swapping are:");
System.out.println("Value of number 1 is " +num1);
System.out.println("Value of number 2 is " +num2); System.out.println("Value of number 3 is " +num3);
num1 = num1+ num2+ num3; num2 = num1- (num2+ num3); num3 = num1- (num2+ num3); num1 = num1- (num2+ num3);
// Printing values of numbers after swapping in order to see the change
System.out.println("Values after swapping are:");
System.out.println("Value of number 1 is " +num1);
System.out.println("Value of number 2 is " +num2);
System.out.println("Value of number 3 is " +num3);
)
)

Выход:

Исходные значения перед заменой:
Значение числа 1 составляет 10
Значение числа 2 составляет 20
Значение числа 3 составляет 30 Значения после замены:
Значение числа 1 составляет 30
Значение числа 2 равно 10
Значение числа 3 составляет 20

объяснение

В приведенном выше примере используется простая математика для обмена значениями 3 переменных. Это включает 4 шага, которые упомянуты ниже:

  1. Значение num1 + num2 + num3 (т. Е. 10 + 20 + 30 = 60) присваивается переменной 'num1'. Так что num1 = 60.
  2. Значение num1- (num2 + num3) (т. Е. 60 - (20 + 30) = 10) присваивается переменной 'num2'. Так что num2 = 10.
  3. Значение num1- (num2 + num3) (т. Е. 60 - (10 + 30) = 20) присваивается переменной 'num3'. Итак, num3 = 20.
  4. Значение num1- (num2 + num3) (т. Е. 60 - (10 + 20) = 30) присваивается переменной 'num1'. Итак, num1 = 30.

Поменяемые значения 3 переменных выводятся на консоль.

Случай 2: замена 3 чисел с использованием временной переменной

public class Swap3Numbers
(
public static void main( String() args)
(
int num1=10; int num2 =20; int num3 =30;
// Printing values of numbers before swapping in order to see the change
System.out.println("Original values before swapping are:");
System.out.println("Value of number 1 is " +num1);
System.out.println("Value of number 2 is " +num2); System.out.println("Value of number 3 is " +num3);
int temp = num1; num1 = num2; num2= num3;
num3= temp;
// Printing values of numbers after swapping in order to see the change
System.out.println("Values after swapping are:");
System.out.println("Value of number 1 is " +num1);
System.out.println("Value of number 2 is " +num2); System.out.println("Value of number 3 is " +num3);
)
)

Выход:

Исходные значения перед заменой:
Значение числа 1 составляет 10
Значение числа 2 составляет 20
Значение числа 3 составляет 30 Значения после замены:
Значение числа 1 составляет 20
Значение числа 2 составляет 30
Значение числа 3 - 10

объяснение

В вышеприведенной программе замена 3 номеров выполняется в 4 простых шага и используется временная переменная «temp»:

  1. Значение num1 (т.е. 10) присваивается переменной temp. Итак, теперь температура имеет значение 10.
  2. Значение переменной num2 (т. Е. 20) присваивается num1, поэтому значение num1 теперь равно 20.
  3. Значение, если переменная num3 (то есть 30) назначена переменной num2, поэтому num2 имеет значение 30.
  4. Значение временной переменной (т. Е. 10) присваивается переменной num3, поэтому num3 теперь имеет значение 10.
    Значения 3 чисел меняются местами и печатаются на консоли.

Вывод

Как объяснено выше, обмен выполняется двумя вышеупомянутыми способами. Хотя обмен в Java также может быть выполнен с помощью вызова по ссылке, который использует адрес чисел для оценки значений.

Рекомендуемые статьи

Это руководство по обмену в Java. Здесь мы обсуждаем обмен двух чисел и трех чисел в Java с использованием и без использования временных переменных. Вы также можете взглянуть на следующие статьи, чтобы узнать больше -

  1. CardLayout в Java
  2. Обмен в Python
  3. Жизненный цикл потока в Java
  4. Выбор сортировки в Java
  5. Как Swapping работает в C ++?
  6. Обмен в PHP