Java

【Javascript】でJavaのStream APIでいうcollectみたいなことをやりたかったんだがreduceしかなかったので仕方なくreduceでやったら思いのほかあっさり出来た上にJavaも結局collectなんか使わなかった件


タイトルの通りなのだが…

仕事の都合でJavascriptで集約処理みたいなことをする必要が出てきて、JavaのStream APIみたいのないかな、というのを探したのがスタートだった。
最初パっと思いついたのは、「JavaのStream APIでいうところのcollectみたいなやつ、javascriptにもないかな」だった。
ちょっとググってみるとMozillaのサイトにJavaのStream APIっぽい関数群がいくつか並んでいるのだが(reduce、join、filter、flatMap、forEachなどなど)、collectが見当たらない。
で、reduceはあったので、これ使って頑張るしかないのか、と思って挑んでみたら、思いのほかあっさりできた、という話。
そして、そのあと結局Javaにも手を出してやってみたら、collectなんか使わなくてもやりたいことが実現できました、という苦労話。。



【Java】Java SE 8 Gold挑戦にあたってのJava8言語仕様勉強メモ


Java SE 8 programmer Ⅱ受験にあたってjava8の言語仕様等を勉強して覚えた結果等をここに書き記す。
「Java1.6くらいで言語仕様が止まっているレガシー人間が1.8を学ぼうと自己学習した記録」に近く、ほぼほぼ自分用のメモである。
世間的に言っても大分時代遅れの内容であると思われ、その点ご留意くださいといいますか…



【Java】InputStream#readしたバイトデータを出力するときの注意点(自分用備忘録)


InputStream#readしたバイトデータをByteArrayOutputStreamにwriteして、後でFileOutputStreamでファイルに出力する、というのは、割とよく見る作りだけれども、InputStream#readの結果データを格納したbyte配列をそのままFileOutputStreamに渡すと出力結果に余分なデータが含まれる可能性がある。
これ、昔から割とありがちで、そのたびに毎回実装に若干悩むのだが、ググってみた感じあんまり「これ」といった回避策が載ってるサイトがなかったので、自分用の備忘録として残す。
(まあ、Java1.9以降では、全データ読み込み専用のメソッドも用意されてるらしいので、そっち使えばこんなこと考えなくても済みそうだが…)



【Java】OraclePrepaedStatementを使ったバインド変数設定方法について


バインド変数を用いたSQLにJavaから動的に値をセットする場合、
Oracleが用意している「OraclePreparedStatement」というのを使うことになる。
(どうもJava標準で用意されてるライブラリやクラス群にはバインド変数に公式に対応しているPreparedStatementは存在しないようだ)


 


【Java】アナグラムの生成ロジック


アナグラムを生成するプログラム。
暇だから作った。
もうすこしスマートなやり方あるんでしょうけども。
個人的な使い方が「ベーシック認証のIDとパスワードの生成」なので
短いながらも予想しづらいランダム風な文字列が作れればなんでもよく、
たまに活用しています。