ืืืืคืช ืืืืืืงืืื ืืื ืืืช ืืคืขืืืืช ืืคืืคืืืจืืืช ืืืืชืจ ืืชืื ืืช. ืื ืฉืืืืฉื ืืืืืื ืืืืื. ืื ืฉืงืืจื ืืืืืคื ืืื ืฉื ื ืืฉืชื ืื ืืืืืืคืื ืืช ืืขืจืืื ืฉืืื. ืืืืืจ ืื ื ืืื ืืืฆื ืืืืืืฃ ืืืืืืงืืื ื-Java ืืฉื ื ืืงืจืื ืฉืื ืื. ืืืื ืืื ืืืืคืช ืืืืืืงืืื ืขืฆืืืืื ืืืฉื ื ืืื ืืืืคืช ืฉื ื ืืืืืืงืืื ืืจืฉืืื ืื ืืขืจื. ืชืืืื ื ืืื ืืืืคืช ืืืืืืงืืื ืขืฆืืืืื.
ืื ืืืืชื ืืืืคื! ืืืฉืจ ืื ื ืงืืจืืื ืืฉืืืช swap ืืืขืืืจืื ืืช ืืืืืืืงืืื, ืื ื ืืขืืืจืื ืขืืชืง ืฉื ืืืืืืืงื, ืขื ืื ืขืจืื ืืืืคืืื ืื. ืื ืืกืืื ืฉืืืืื ืื ื ืงืจื "ืขืืืจ ืขื ืืื ืขืจื". ืฉืืืช ืืืืืคื ืืืขืฉื ืืืืืคื ืืช ืืืืืืืงืืื ืฉืืฉืคืืขืื ืจืง ืขื ืืขืืชืง ืฉื ืืืืืืืงื ืืืงืืจื. ืื ืืืคืฆืื ืืืงืืจืืื ื ืฉืืจืื ืืื ืฉืื ืื. ืืคืชืจืื ืืื ืืืื ืืืฉืชืืฉ ืืืืืงืช ืขืืืคื ืืื ืืขืืืฃ ืืช ืฉื ื ืืืืืืืงืืื.
![ืืื ืืืืืคืื ืืืืืืงืืื ื-Java? - 1](https://cdn.codegym.cc/images/article/8e47ed82-75f1-4a43-bacd-051c1e81687d/800.jpeg)
ืืืืคืช ืืืืืืงืืื ืฉืื ื ืืืืืคืช ืกืืื ื ืชืื ืื ืคืจืืืืืืืืื
ืืืช ืืฉืืืืช ืื ืคืืฆืืช ืืฉืืืืฉ ืืื ืืืืืืฃ ืขืจืืื ืคืจืืืืืืืืื ืืื ืฉืืืืฉ ืืืฉืชื ื ืืื ื. ืขื ืืืช, ืืชื ืืืืข ืฉ-Java ืืฉืชืืฉืช ื-"Pass By Value" ืืขืช ืืขืืจืช ืคืจืืืจืื ืืฉืืื. ืืื, ืืืืคืช ืืืืืืงืืื ืื ืชืขืืื ืืคื ืฉืฆืืคืืช ืืฉืืื ืื. ืืืืืื ืืืื ืชืจืื ืืืช.public class ObjectSwapper {
public static void main(String[] args) {
InnerClass obj1 = new InnerClass(12345);
InnerClass obj2 = new InnerClass(11111);
swap(obj1, obj2);
System.out.println("Obj1 ID value : " + obj1.id + "\n" + "Obj2 ID value : " + obj2.id);
}
static void swap(InnerClass x, InnerClass y) {
InnerClass temp;
temp = x;
x = y;
y = temp;
}
static class InnerClass {
public int id;
public InnerClass(int Id) {
this.id = Id;
}
}
}
ืืคืื: ![ืืื ืืืืืคืื ืืืืืืงืืื ื-Java? - 2](https://cdn.codegym.cc/images/article/790ed326-5d82-47e0-a5b8-88adcc5af65e/800.jpeg)
ืืืืคืช ืืคืฆืื ืขื ืืืชืช ืขืืืคื
public class ObjectSwapper {
public static void main(String[] args) {
InnerClass obj1 = new InnerClass(12345);
InnerClass obj2 = new InnerClass(11111);
objectWrapper wrapperObj1 = new objectWrapper(obj1);
objectWrapper wrapperObj2 = new objectWrapper(obj2);
// Values before swapping
System.out.println("WrapperObj1 InncerClass ID value : " + wrapperObj1.innerObject.id + "\n" + "WrapperObj2 InncerClass ID value : "
+ wrapperObj2.innerObject.id + "\n");
swap(wrapperObj1, wrapperObj2);
// Values after swapping
System.out.println("WrapperObj1 InncerClass ID value : " + wrapperObj1.innerObject.id + "\n" + "WrapperObj2 InncerClass ID value : "
+ wrapperObj2.innerObject.id);
}
static void swap(objectWrapper wrapperObj1, objectWrapper wrapperObj2) {
InnerClass temp;
temp = wrapperObj1.innerObject;
wrapperObj1.innerObject = wrapperObj2.innerObject;
wrapperObj2.innerObject = temp;
}
static class InnerClass {
public int id;
public InnerClass(int Id) {
id = Id;
}
}
static class objectWrapper {
InnerClass innerObject;
public objectWrapper(InnerClass objInnner) {
this.innerObject = objInnner;
}
}
}
ืืื ืืฉืชืืฉื ื ืืืืืงืช ืขืืืคื ืฉืืฉ ืื ืืืคืืื ืฉื ืกืื ืืืืืืืงืืื ืฉืื ืื ื ืฆืจืืืื ืืืืืืฃ. ืขื ืืื ืฉืืืืฉ ืืฉืืืช ืืืืคื ืคืฉืืื, ืืื ืืืืืฃ ืืช ืืชืืื ืฉื ืืืืืืงืื InnerClass ืฉื ืืืืืืงืื ืืืืงืช ื-wrapper. ืืื ืืืฉืื ื ืืกืฃ ืฉื ืืืืืืงืื InnerClass ืฉืืืืืคื, ื ืืื ืืืฉืชืืฉ ื-wrapperObj1.xyz ืื-wrapperObj2.xyz ืืืชืื. ืืคืื:![ืืื ืืืืืคืื ืืืืืืงืืื ื-Java? - 3](https://cdn.codegym.cc/images/article/f3eabe7c-3a1c-4628-a7cb-7fbd78dfc2f2/800.jpeg)
ืฉืืืช ื-swap() ืืืืื ืืช ื-Java
ืืืืืงืืช ืฉื Java Collections Framework ืืฉ ืฉืืื ืืืื ืืช ืืืืืคืช ืืืื ืืื ืื ืงืจืืช swap() . ื- java.util ืืื ืืืืงืช ืขืืจ ืืืืืื ืฉืืืืช ืกืืืืืช ืฉืืืืืืช ืืคืขืื ืขื ืืืื ืืื ืืื ืจืฉืืืืช ืืืืฉืง ืืืืกืฃ. ืืฉืืืืฉ ืืฉืืืช ืืืืืคื ืืื ืืจืื ืืืชืจ ืงื ืืืืืืื ืฉืืืืจื ื ืขืืื ืงืืื ืืื. ืืฉืืื swap() ืืื ืฉืืื ืกืืืืช ืืืื ืืชื ืืคืขืื ืืืชื ืขื ืฉื ืืืืืงื ืืชืืจ Collections.swap() . ืกืื ืืืืืจื ืฉื ืฉืืืช swap() ืืื ืืืื ืืื ืื ืืืืืจ ืืืจ. ืขืืื ืืืขืืืจ ืฉืืืฉื ืืจืืืื ืืื ืืฉืืืช swap() . ืืืืง ืืช ืืืขืจื ืืืื.swap(List<?> list, int a, int b)
ืคืจืืืจืื:
- list โ ืจืฉืืื ืืืืื ืืช ืืืืื ืืื ืฉืื ื ืืืืืคืื.
- a - ืืื ืืงืก ืฉื ืจืืื ืฉืืฉ ืืืืืืฃ .
- b - ืืื ืืงืก ืฉื ืืืื ื ืืืจ ืฉืืฉ ืืืืืืฃ .
ืฉืืืช swap() ื- ArrayList
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ArrayListSwapper {
public static void main(String[] args) {
try {
List fruits = new ArrayList();
fruits.add("Mango");
fruits.add("Papaya");
fruits.add("Apple");
fruits.add("Orange");
fruits.add("Watermelon");
fruits.add("Bael");
System.out.println("Before swapping : " + fruits);
//using Collection.swap() method
Collections.swap(fruits, 2, 5);
System.out.println("After swapping : " + fruits);
} catch (IndexOutOfBoundsException e) {
System.out.println("Index Out of Bound Exception thrown : " + e);
}
}
}
ArrayList ืฉื ืคืืจืืช ืืืื ืฉืืฉื ืืืื ืืื. ืื ื ืืืืืคืื ืืช ืืืืื ืืื ืืฉื ื ืืืืืืฉื ืืืืฆืขืืช ืฉืืืช ืืคืื ืงืฆืื swap() . ืืฉืืื ืืืืื ืืืืชืจ ืืื ืืืชืื ืืช ืฉืืืช swap() ืืชืื ืืืืง try-catch ืืืืืื ืฉืืื ืืืืื ืืืจืืง IndexOutOfBoundsException ืืืื ืจืืฆื. ืืคืื: ืื ื ืขืืืจ ืืช '2' ื-'8' ืืืื ืืงืกืื, ืืืคืืืงืฆืื ืชืืจืืง ืืจืืื ืืืืืื ืฉืืืื ืืจืฉืืื ืืื ืฉืืฉื. ![ืืื ืืืืืคืื ืืืืืืงืืื ื-Java? - 4](https://cdn.codegym.cc/images/article/b226caef-dfb6-4e11-b584-3ca9fc691d96/800.jpeg)
Collections.swap(fruits, 2, 8);
ืืคืื ืืืื:![ืืื ืืืืืคืื ืืืืืืงืืื ื-Java? - 5](https://cdn.codegym.cc/images/article/03a864bb-7202-42b4-a8df-b0f27d4e8aa5/800.jpeg)
GO TO FULL VERSION