概要
1つの引数を受け取り、同じ型の結果を返す演算を表現するために使用される。
例
import java.util.function.UnaryOperator;
public class Main {
public static void main(String[] args) {
// UnaryOperatorの実装を作成
UnaryOperator<Integer> square = x -> x * x;
// UnaryOperatorの使用例
int result = square.apply(5);
System.out.println(result); // 25
}
}
この例では、UnaryOperator
インタフェースの実装を作成し、square
という名前で変数に代入している。UnaryOperator
は単一の引数(この例では整数)を受け取り、その引数の二乗を計算して同じ型の結果を返す。計算は、ラムダ式の本体で行われる。
square.apply(5)
の呼び出しにより、UnaryOperatorの実装が実行され、引数の値の二乗が計算され、結果として25が返される。
このように、引数を受け取って演算を行い、同じ型の結果を返す関数を定義することができる。
ちなみに、似たような処理ができるインタフェースとしてFunction
がある。
Functionインタフェースとの違い
主な違いは、引数の数と返り値の型にある。
-
UnaryOperator
:1つの引数を受け取り、同じ型の結果を返す関数型インターフェース。
つまり、引数と返り値の型が同じ。 -
Function
:1つ以上の引数を受け取り、結果を返す関数型インターフェース。
つまり、引数の数と返り値の型は、異なる型でも構わない。
使い分け
UnaryOperator
数値の加算や減算を行う場合に適している。
(加算や減算は1つの数値を受け取り、同じ型の結果を返す操作であるため)
例
UnaryOperator<Integer> add = x -> x + 5;
int result = add.apply(10);
System.out.println(result); // 結果は15と表示されます
上記の例では、add
というUnaryOperator
を定義し、引数に5を加える操作を行っている。
apply
メソッドを使用して、引数として10を渡し、結果をresult
に格納している。
Function
数値を文字列に変換する場合に適している。
例
Function<Integer, String> toString = x -> Integer.toString(x);
String result = toString.apply(10);
System.out.println(result); // 結果は"10"と表示されます
上記の例では、toString
というFunction
を定義し、整数を文字列に変換する操作を行っている。apply
メソッドを使用して、引数として10を渡し、結果をresult
に格納している。
このように、UnaryOperator
は引数と結果の型が同じである場合に適している。
一方、Function
は引数と結果の型が異なっている場合により柔軟に使用することができる。