Arrays.asListが返すリストの挙動
CuncurrentHashMap.reduceEntriesメモ
reduceEntries public Map.EntryreduceEntries(long parallelismThreshold, BiFunction ,Map.Entry ,? extends Map.Entry > reducer) 指定されたリデューサを使用して値を結合することにより、すべてのエントリの累積結果を返します。結果がない場合はnullを返します。 パラメータ: parallelismThreshold - このオペレーションを並列的に実行するために必要な(推定の)要素数 reducer - 交換可能性と結合性を持つ結合関数 戻り値: すべてのエントリを累積した結果 導入されたバージョン: 1.8
自分は小学生並みの脳みそしか有していないので、これを見てもぱっと見よく話からない。 一つ一つ見ていく
戻り値はMap.Entry<K,V>
long parallelismThreshold 平行操作を実行する閾値、つまりここで指定したEntry以上の要素が存在すれば並列実行される
BiFunction<Map.Entry<K,V>,Map.Entry<K,V>,? extends Map.Entry<K,V>>
脳が崩壊しそうだ…
? extends Map.Entry<K,V> reducer(Map.Entry<K,V> entry,Map.Entry<K,V> entry) 上記のような形式のラムダ式を呼ぶことができる。
何となく分かった。で、最大値を検索?するサンプル
ConcurrentHashMap<String, Integer> randomMap = new ConcurrentHashMap<String, Integer>(); //10000個ランダムな値を生成 new Random().ints(10000).forEach(value->randomMap.put(String.valueOf(value) , value)); // Map.Entry<String, Integer> max = randomMap.reduceEntries(1, (e1,e2) -> e1.getValue() > e2.getValue() ? e1 : e2); System.out.println(max);
ZoneDateTImeで24時間以上plusHourした場合
private void test() { ZonedDateTime now = ZonedDateTime.now(); System.out.println(now); ZonedDateTime over24 = now.plusHours(30); System.out.println(over24); }
実行結果
2017-01-15T15:21:05.128+09:00[Asia/Tokyo] 2017-01-16T21:21:05.128+09:00[Asia/Tokyo]
Magsafe2(Mac Pro)の代替品
正月に実家に帰省した際、Macbook Proの充電器を自宅に忘れてきてしまい大変困った。
純正品の充電器を購入すると9,000円近い出費になってしまう。
結局下記の組み合わせで3000円ちょっとの出費に抑えることができた。
この組み合わせで2、3度充電したが特に問題なく使用することができた。
ELECOM 巻取式ACアダプタ TOSHIBA用 15V ACDC-TB1565BKMB
- 出版社/メーカー: エレコム
- 発売日: 2010/02/22
- メディア: Personal Computers
- 購入: 5人 クリック: 5回
- この商品を含むブログを見る
HDMI分配器を購入
AWTの勉強1
awtでウィンドウはFrameというオブジェクトで表現される。
このFrameをカスタマイズすることでアプリケーションを作成する。
つまりFrameを拡張継承していく。
public CustomeFrame extends Frame {
素のFrameはマウスで押しても何も起きない。
なぜならマウスで押したということがわからない状態だから。
ユーザーのなんらかのアクションを受け取るためには、リスナーと呼ばれる
ユーザーのアクションを受け取ることができるオブジェクトを利用する必要が有る。
普通(?)のオブジェクトは外からのアクションを受け取ることができないので、
リスナーを経由して外のアクションを受け取る。
よくadd〜listener()みたいなメソッドでリスナーの参照を得る。
public CustomeFrame extends Frame implements ActionListener { //ユーザーがCustomeFrameに及ぼしたなんらかのアクションがActionEventととして通知される。 public void actionPerformed(ActionEvent ae) { .... } }
リスナーはセンサーで、そのセンサーを壁にくっつけてなんらかのアクションを
感知しているイメージ
センサーは色々あるし、最初からセンサーで感知したあとの動作が決まっているものもある。