mrn’s diary

反省してます

Java8 Lamda式がわからなかったのでいろいろとためした

 

Java8よりコレクションフレームワークには

streamAPIを持つようになった。

これと、ラムダ式を組み合わせることによりいままで

長々書いていた操作が簡単に書けるようになった。

 

streamメソッド

コレクションに対しアクセスを許可された別の形態(意味不明)

コレクションそれぞれに対して操作をおこなう

 

map()

引数に対して加工を行う

 

fillter()

引数に対してboolean trueのものを返す

 

sorted()

引数を二つとり、結果が正の数なら昇順、負の数なら降順にかえす

 

 

参考

Java Stream APIをいまさら入門 - Qiita

 

www.techscore.com

 

 

デザインパターン

Strategyパターン

 

実装する機能をわけることによって機能の修正など(?)をやりやすくしたもの

 

Interface

Strategy

機能に対するインターフェイスとなる

 

ConcreteStrategy

実際の機能を実装。

 

Context

Strategyを利用する。

実際のインスタンスとしてはConcreteStrategyである。

 

プログラム勉強1.5h

プログラムはこうして作られる

三章テクニック抜粋

プログラムはこうして作られる
著 平山 尚  秀和システム

意図しないプログラムができたときの考え方
結果から考える。
→~という結果があるならばその結果がだされた
理由を考える


理想と現実がはなれている理由を考える

JavaリフレクションAPI -Classクラス-

JVMは内部に大量の情報を管理しているがその中のひとつに

実行時型情報というものがある 

 

・例

その型、クラスがどんなメソッド、フィールドをもっているか

クラス自体にはpublicがついているかなど

 

上記のような情報を実行中(開発時ではない!)に取得、利用したい場合は

リフレクションAPIと呼ばれるクラスを持ちいる

 

クラスに関する情報には以下の方法がある

Class.forName(FQCN 文字列);

クラス名.class;

変数名.getClass();

 

メソッド

getName() FQDNを取得する

クラス名部分のみを取得する getSimpleName()

所属するパッケージ情報を返す getPackage()

親クラスの情報を取得 getSuperclass()

インターフェースかを判定

二分探索

ArrayBinarySearchがJavaのArrayクラスにはあり
二分探索をしてくれる。



二分探索

順番に並んだものにたいして中央を基準に
それ以上、以下にわけ、探したいものがどちらに
存在するのか、を潰しながら
繰り返し繰り返し探すタイプのソート。