演習 5-1 (個人): 関数型インターフェースを使ってみましょう。
import java.util.function.Function;
public class Main{
// 文字列 "hoge=" + (a-5) を返す関数 Main::hoge を作成してください
public static String hoge( Integer a ){
return ?
}
public static void main(String[] args) {
Function< Integer, String > function;
// 関数型インターフェース function に関数 Main::hoge を代入してください
function = ?
// 321 を引数にして function を呼び出し、その結果を表示してください
System.out.println( function.apply( ? ) );
}
}
結果:
hoge=316
フォルダ「JAVABSC_5_1」を新規作成し、その中に移動します
フォルダ「JAVABSC_5_1」の中で新規に 1 つソースを作ります。ファイル名を「Main.java」とします。
上のコードをコピーして、解答します。
コンパイルして実行します。
チーム内で答え合わせをしてください。
指定場所に「ソースコード」と「実行結果」を記入して下さい。
演習 5-2 (個人): ラムダ式を使ってみましょう。
import java.util.function.Function;
public class Main{
public static void main(String[] args) {
Function< Integer, String > function;
// a を引数に持ち文字列 "hoge=" + (a+1) を返すラムダ式を関数型インターフェースに代入してください
// 正式版でも省略版でもどちらでも可です
function = ?
// 789 を引数にして function を呼び出し、その結果を表示してください
System.out.println( function.apply( ? ) );
}
}
結果:
hoge=790
フォルダ「JAVABSC_5_2」を新規作成し、その中に移動します
フォルダ「JAVABSC_5_2」の中で新規に 1 つソースを作ります。ファイル名を「Main.java」とします。
上のコードをコピーして、解答します。
コンパイルして実行します。
チーム内で答え合わせをしてください。
指定場所に「ソースコード」と「実行結果」を記入して下さい。
演習 5-3 (個人): リスト + forEach + ラムダ式を使ってみましょう。
import java.util.ArrayList;
public class Main{
// (注) Javaのラムダ式はローカル変数の値を書き換えられないので static int で定義しています
static private int goukei;
public static void main(String[] args) {
var list = new ArrayList< Integer >();
list.add( 4 );
list.add( -3 );
list.add( 5 );
// forEach 文をラムダ式を使って list に収められている数値の合計を求めてください
// ラムダ式の引数は a とします
// ラムダ式は正式版でも省略版でもどちらでも可です
goukei = 0;
list.forEach( ? );
System.out.println( goukei );
}
}
結果:
6
フォルダ「JAVABSC_5_3」を新規作成し、その中に移動します
フォルダ「JAVABSC_5_3」の中で新規に 1 つソースを作ります。ファイル名を「Main.java」とします。
上のコードをコピーして、解答します。
コンパイルして実行します。
チーム内で答え合わせをしてください。
指定場所に「ソースコード」と「実行結果」を記入して下さい。
演習 5-4 (個人): マップ + forEach + ラムダ式を使ってみましょう。
import java.util.HashMap;
public class Main{
public static void main(String[] args) {
var map = new HashMap< String, Integer >();
map.put( "札幌", 12 );
map.put( "函館", 34 );
map.put( "旭川", 56 );
map.put( "釧路", 34 );
// key がキー、value が値です
// value が34であるkeyを全て表示してください
map.forEach( (key,value) -> {
if( ? ){
System.out.println( ? );
}
} );
}
}
結果:
函館
釧路
フォルダ「JAVABSC_5_4」を新規作成し、その中に移動します
フォルダ「JAVABSC_5_4」の中で新規に 1 つソースを作ります。ファイル名を「Main.java」とします。
上のコードをコピーして、解答します。
コンパイルして実行します。
チーム内で答え合わせをしてください。
指定場所に「ソースコード」と「実行結果」を記入して下さい。
演習 5-5 (個人): StreamAPIを使って「値が30以上かつ40以下の都市名」を表示してみましょう。
import java.util.HashMap;
public class Main{
public static void main(String[] args) {
var map = new HashMap< String, Integer >();
map.put( "札幌", 12 );
map.put( "函館", 34 );
map.put( "旭川", 56 );
map.put( "釧路", 34 );
// 値が30以上かつ40以下の都市名を表示して下さい
map.entrySet().stream()
.filter( i -> ? && ? ) // 中間操作
.forEach( i -> System.out.println( ? ) ); // 終端操作
}
}
結果:
函館
釧路
フォルダ「JAVABSC_5_5」を新規作成し、その中に移動します
フォルダ「JAVABSC_5_5」の中で新規に 1 つソースを作ります。ファイル名を「Main.java」とします。
上のコードをコピーして、解答します。
コンパイルして実行します。
チーム内で答え合わせをしてください。
指定場所に「ソースコード」と「実行結果」を記入して下さい。