1. ホーム
  2. java

[解決済み] Java:マップ関数はありますか?

2022-03-01 20:18:54

質問

を必要としています。 地図 関数があります。Javaでこのようなものはすでにあるのでしょうか?

(不思議に思う人のために。もちろん、私はこの些細な関数を自分で実装する方法を知っています...)

解決するには?

java 6時点のJDKには関数の概念がありません。

グアバ があります。 機能 インターフェースと
Collections2.transform(Collection<E>, Function<E,E2>)
メソッドは、あなたが必要とする機能を提供します。

// example, converts a collection of integers to their
// hexadecimal string representations
final Collection<Integer> input = Arrays.asList(10, 20, 30, 40, 50);
final Collection<String> output =
    Collections2.transform(input, new Function<Integer, String>(){

        @Override
        public String apply(final Integer input){
            return Integer.toHexString(input.intValue());
        }
    });
System.out.println(output);

出力します。

[a, 14, 1e, 28, 32]


最近のJava 8では、実際にmap関数があるので、私ならもっと簡潔なコードを書くと思います。

Collection<String> hex = input.stream()
                              .map(Integer::toHexString)
                              .collect(Collectors::toList);