リストのソート

リストのソート #

リスト内の要素をソートする方法についてを示す。

Javaではリストに関するメソッドがあるライブラリjava.util.Collectionsに、リストをソートするメソッド**sort()**があるので、それを利用する。

import java.util.ArrayList;
import java.util.List;
import java.util.Collections;
class Main{
  public static void main(String args[]){
    List<Integer> l = new ArrayList<Integer>();
    l.add(1);
    l.add(3);
    l.add(-2);
    l.add(100);

    for(int i=0;i<l.size();i++){
        System.out.print(l.get(i) + " ");
    }
    
    System.out.println();
    Collections.sort(l);
    
    for(int i=0;i<l.size();i++){
      System.out.print(l.get(i) + " ");
    }
  }
}

実行結果

> java Main
1 3 -2 100
-2 1 3 100

Pythonではリストをソートする関数は以下の2つがある。

  • 組み込み関数sorted()
  • リストの関数sort()

sorted関数は引数に受け取ったリストをソートしたものを返す。この時、リスト自体はソートされた形にはならない。
sort関数は引数は無く、ソートしたいリストの関数として呼び出し利用する。実行後、リストはインプレース(コピーを取らず、そのリストオブジェクトを直接ソートする)でソートされる。

>>> a=[1,9,8,7,6,5,3,2]
>>> 
>>> sorted(a)
[1, 2, 3, 5, 6, 7, 8, 9]
>>> a
[1, 9, 8, 7, 6, 5, 3, 2]
>>>
>>> a.sort()
>>> a
[1, 2, 3, 5, 6, 7, 8, 9]
>>>