| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
2,376 バイト追加 、 2020年4月16日 (木) 16:25
==[[言語まとめ Java]]==
[[言語 まとめ]] | [[Java]]|
 
{{amazon|4798151122}}
===準備===
====参照サイト====
=====クラス=====
*継承
====ラムダ式/Stream API====
*Java8以降では、メソッドも型の一つ
*メソッドを引数として渡すこともできる。
!名称!!内容
|-
|Consumer||処理だけで、値を返さない値を返さない。処理のみ。|-|Supplier||値を返す。引数なし。|-|Function||値を返す。引数あり。|-|Predicate||真偽値を返す。引数あり。|-|BinaryOperator||演算結果を返す。引数2つあり。|-|UnaryOperator||演算結果を返す。引数1つ。|}  import java.util.function.*; public class BuildInFuncInf { public static void main(String[] args) { String[] num = {"1","2","3"}; printFunc(num, (value) -> Integer.parseInt(value) * 10 ); printFunc(num, (value) -> (int)Math.pow(Integer.parseInt(value),2) ); } /** * Stringを引数にとり、Integerを返す関数インターフェース */ public static void printFunc(String[] params, Function<String, Integer> func) { for(String param : params) { System.out.println(String.format("%d", func.apply(param))); } } }*実行結果 10 20 30 1 4 9 =====ラムダ式の簡単化=====*本体が一文である場合、{}を省略できる*文の戻り値が暗黙的に戻り値とみなされる*引数型は暗黙で類推されるので省略するのが一般的*引数が1つの場合、くくるかっこも省略できる*引数がない場合はかっこを省略できない=====ラムダ式を伴うコレクションのメソッド====={|class="wikitable"!メソッド!!内容
|-
|replaceAll||指定されたルールで置き換え
|-
|removeIf||合致した要素を削除
|-
|compute/comuteIfPresent/comupteIfAbsent||マップに処理の結果を設定
|-
|merge||重複したキーの値を加工
|}
*replaceAll
var list = Arrays.asList("0,1,2", "3,4,5", "6,7,8")
list.replaceAll(v -> v.replace(',','-'));
System.out.println("replaceAll : " + list);
 
replaceAll : [0-1-2, 3-4-5, 6-7-8]
 
*compute
var map = new HashMap<String, String>(Map.of(
"1", "a",
"2", "b",
"3", "c"));
map.compute("2", (k,v) -> k + v);
System.out.println(map);
 
{1=a, 2=2b, 3=c}
 
===Stream API===
*コレクションなどのデータソースから繰り返し処理をStreamに引き渡す
*処理の流れは
#ストリーム生成
#中間処理:抽出、加工
#終端処理:出力、集計
 
var list = Arrays.asList(0,1,2,3,4,5);
list.stream()
.filter(num -> num % 2 == 0)
.map(num -> (int)Math.pow(num, 2))
.forEach(System.out::println);
0
4
16
====ファイル====
=====ファイルを読む=====
=====ファイルに書く=====

案内メニュー