質問するログイン新規登録
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

506閲覧

Java 関数 ラムダ式 配列 変数へのメソッド参照の格納方法

o2kr1o

総合スコア5

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2022/03/27 09:31

0

0

public class Main {
public static void main(String[] args) {

Function<String, Integer> func = (String str) -> { return str.length(); }; int a = func.apply("Java"); System.out.println("文字列「Java」は" + a + "文字です"); }

}

上記のコードのようにAPIとラムダ式を用いて「関数の定義と、その実体の即時生成したもの」を変数に格納したいのですが下記のようなコードの場合(long[]配列を引数と戻り値として渡す)どうすれば変数に格納できるのでしょうか。

public class Main {
public static void main(String[] args) {

LongFunction?<long[]?, long[]?> f = //← この部分がわかりません。 (long[] org) -> { long[] cpy = java.util.Arrays.copyOf(org. org.length); java.util.Arrays.sort(cpy); return cpy; }; }

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

やりたいことをくみ取れている自信はありませんが、たとえば以下のようなコードでしょうか?

java

1Function<long[], long[]> f = (org) -> { 2 long[] cpy = Arrays.copyOf(org, org.length); 3 Arrays.sort(cpy); 4 return cpy; 5}; 6 7long[] src = new long[]{3, 4, 2, 5, 1}; 8long[] dst = f.apply(src); 9System.out.println(Arrays.toString(dst)); //=> [1, 2, 3, 4, 5]

投稿2022/03/27 09:59

neko_the_shadow

総合スコア2395

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

o2kr1o

2022/03/27 10:12

ありがとうございます。とても助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問