Intercambia elementos en una lista de objetos personalizados
La función swapElements
también se puede utilizar para intercambiar elementos en una lista de objetos personalizados. Define una clase Person
con los campos name
y age
, luego crea una lista de objetos Person
y intercambia dos elementos en la lista.
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String toString() {
return name + " (" + age + ")";
}
}
public class SwapFunction {
public static <T> void swapElements(ArrayList<T> list, int index1, int index2){
try {
Collections.swap(list, index1, index2);
} catch (IndexOutOfBoundsException e) {
System.out.println("Error: " + e.getMessage());
}
}
public static void main(String[] args) {
ArrayList<Person> list = new ArrayList<>();
list.add(new Person("Alice", 25));
list.add(new Person("Bob", 30));
list.add(new Person("Charlie", 35));
list.add(new Person("David", 40));
System.out.println("Before Swap: " + list);
swapElements(list, 0, 3);
swapElements(list, 1, 2);
System.out.println("After Swap: " + list);
}
}
Guarda el archivo Java, luego compila y ejecútalo.
javac ~/project/SwapFunction.java && java SwapFunction
Deberías ver la siguiente salida:
Before Swap: [Alice (25), Bob (30), Charlie (35), David (40)]
After Swap: [David (40), Charlie (35), Bob (30), Alice (25)]