两个如何在不使用collections.swap方法的情况下交换数组列表中的两个元素

时间:2016-10-18 21:37:01

标签: java

开发一个方法来交换具有指定有效索引I和j的两个元素:

public void swap(int I, int j);

这是我必须用来交换数组列表中两个元素的方法。 原始列表是:[a ==> b ==> c ==> d ............]调用swap(0,2)后:[c ==> b ==> a ==> d ............] 这是打印输出的内容。

---------头等-----

package it179.pa2;

import java.util.*;

public class MyArrayList {

private String list;


MyArrayList(String list) {
    this.list = list;
}
MyArrayList() {

}

public void swap(int i, int j) {
    int temp1;
    temp1 = i;
    i = j;
    j = temp1;               
    }

@Override
public String toString() {
    return list + "==>";
}

}

-----第二类-----

package it179.pa2;
import java.util.*;

public class MyArrayListTest {


public static final void main (String[]args) {

    MyArrayList my = new MyArrayList();


    ArrayList<MyArrayList> al = new ArrayList<MyArrayList>();

    al.add(new MyArrayList("A"));
    al.add(new MyArrayList("B"));
    al.add(new MyArrayList("C"));
    al.add(new MyArrayList("D"));
    al.add(new MyArrayList("E"));
    al.add(new MyArrayList("F"));
    System.out.print("The original list is: ");
            for (MyArrayList tmp: al) {

        System.out.print(tmp);      
    }// end of for

    System.out.println("After calling swap(0,2): ");
    System.out.print(al);
}

}

3 个答案:

答案 0 :(得分:2)

对于 List 中的交换元素,您可以使用 swap()java.util.Collections 方法

Collections.swap(list, element1, element2)

答案 1 :(得分:0)

这是静态方法:

public static <E> void swap(List<E> list, int i, int j) {
    E e = list.get(i);
    list.set(i, list.get(j));
    list.set(j, e);
}

this question。要使用类来执行此操作,逻辑将是相同的,但方法签名将改为public void swap(int i, int j)

答案 2 :(得分:0)

我们可以使用 set() 方法交换 ArrayList 元素。collections 也提供了交换 collections 的方法.swap() 但在这个例子中,我们将编写自己的方法来替换 ArrayList 中的元素。

  public static swapList(List<String> arr , int i , int j){
       //assign  element from position i to temporary variable 
        String element = arr.get(i);
        //replace element on position i from position j
        arr.set(i, arr.get(j));
        //replace element on postion j from temporary variable
        arr.set(j, element);
}

我们也可以使用 collections.swap() 方法来达到同样的目的。

参考:Swap elements of Java ArrayList