LoginSignup
1
1

【JavaGold】UnaryOperatorインタフェース

Last updated at Posted at 2023-06-12

概要

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は引数と結果の型が異なっている場合により柔軟に使用することができる。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1