リスト内の指定した2要素を入れ替える

リスト内の指定した2要素を入れ替える #

リストの指定した2つの位置の要素を入れ替える方法についてを示す。

JavaはListの親クラスであるCollectionsクラスに**swap()**メソッドがあるので、これを利用する。
public static void swap(List<?> list,int i,int j)
使用例を以下に示す。

import java.util.Collections;
import java.util.ArrayList;
import java.util.List;
class Main{

  //List println
  public static void listprint(String name,List<Integer> l){
    System.out.print(name + ": ");
    for(int i=0;i<l.size();i++){
      System.out.print(l.get(i) + " ");
    }
    System.out.println();
  }

  public static void main(String args[]){
    List<Integer> a = new ArrayList<Integer>();
    a.add(1);
    a.add(3);
    a.add(100);
    a.add(0);
    listprint("a", a);

    Collections.swap(a,0,2);

    listprint("a", a);

  }
}

実行結果

> java Main
a: 1 3 100 0 
a: 100 3 1 0 

Pythonではリストの2要素の交換に関しての関数は特に無いが、以下のように書くことで要素の入れ替えが行える。
(リストの0番目、1番目の要素の入れ替え)
l[0],l[1] = l[1],l[0]

使用例を以下に示す。

>>> a=[1,9,8,7,6,5,3,2]
>>> a
[1, 9, 8, 7, 6, 5, 3, 2]
>>> 
>>> a[0],a[2] = a[2],a[0]
>>> 
>>> a
[8, 9, 1, 7, 6, 5, 3, 2]
>>>