配列(リスト)の中の最大値・最小値を求めるには (max, min)

Scala

val mx = lst.max;
val mn = lst.min;

Python

mx = max(lst)
mn = min(lst)

Ruby

mx = arr.max
mn = arr.min

Perl

use List::Util qw/max min/;
my $mx = max(@arr);
my $mn = min(@arr);

Java

簡単に最大値・最小値を求められるメソッドはないので、for文などでループして計算するしかない。

int[] arr = new int[]{20, 40, 10, 40};

int max = arr[0];
int min = arr[1];
for (int i = 1; i < arr.length; i++) {
    int v = arr[i];
    if (v > max) {
        max = v;
    }
    if (v < min) {
        min = v;
    }
}

System.out.println(max); // => 40
System.out.println(min); // => 10

Scala

Signature:

def scala.collection.Seq[A]#max: A
def scala.collection.Seq[A]#min: A

val lst = List(20, 30, 40, 10, 20, 30);

println(lst.max);
// => 40
println(lst.min);
// => 10

要素が文字列の場合は辞書順になる。Scalaでは文字列と数字は型が違っていて勝手に変換することはないので、文字列を数字として比較することはない。

val lst = List("8", "10", "20");

println(lst.max);
// => 8
println(lst.min);
// => 10

リストが空の場合は java.lang.UnsupportedOperationException: empty.max というような例外がスローされる。

Python

max, min という関数を使う。

max(lst)
min(lst)

リストが空の場合はエラーを吐く。

NumPyの配列では max, amax, nanmax, argmax, nanargmax, min, amin, nanmin, argmin, nanargmin という最大値・最小値に関する複数の関数がある。 -> NumPyのndarrayの最大値/最小値に関する関数

Ruby / JRuby

max, min というメソッドを使う。

arr = [20, 40, 10, 40]

p arr.max
# => 40
p arr.min
# => 10

Enumerable#max | Ruby 2.1 リファレンスマニュアル
http://docs.ruby-lang.org/ja/2.1.0/method/Enumerable/i/max.html

Enumerable#max_by | Ruby 2.1 リファレンスマニュアル
http://docs.ruby-lang.org/ja/2.1.0/method/Enumerable/i/max_by.html

Enumerable#min | Ruby 2.1 リファレンスマニュアル
http://docs.ruby-lang.org/ja/2.1.0/method/Enumerable/i/min.html

Enumerable#min_by | Ruby 2.1 リファレンスマニュアル
http://docs.ruby-lang.org/ja/2.1.0/method/Enumerable/i/min_by.html

Enumerable#minmax | Ruby 2.1 リファレンスマニュアル
http://docs.ruby-lang.org/ja/2.1.0/method/Enumerable/i/minmax.html

Enumerable#minmax_by | Ruby 2.1 リファレンスマニュアル
http://docs.ruby-lang.org/ja/2.1.0/method/Enumerable/i/minmax_by.html

Perl

List::Util というモジュールにあるmax関数またはmin関数を使う。

use List::Util qw/max min/;

my @arr = (20, 40, 10, 40);

print max(@arr);
# => 40

print min(@arr);
# => 10

max | List::Util | perldoc
http://perldoc.perl.org/List/Util.html#%24num-%3d-max-%40list

min | List::Util | perldoc
http://perldoc.perl.org/List/Util.html#%24num-%3d-min-%40list

JavaScript

Math.max, Math.min を使う。

var arr = [3, 5, 7, 3, 5];
var max = Math.max.apply(null, arr);
var min = Math.min.apply(null, arr);

console.log(max);
// => 7
console.log(min);
// => 3
このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。
スポンサーリンク