2019-09-01から1ヶ月間の記事一覧
Javaで複数条件でソートする。 - ITエンジニアの技術メモ で扱った題材を優先度付きキュー PriorityQueue を使って実装してみた。以下のような感じになる。 Queue<Work> queue = new PriorityQueue(Comparator. comparing(Work::getReward, Comparator.reverseOrde</work>…
Javaでリストを複数の条件でソートしたい時は、Comparator クラスの comparing() と thenComparing() を使うと簡単に実現できる。例えば、以下の Work クラスのオブジェクトが複数入った List があるとする。 class Work { private int timeToFinish; // 仕…
以前、https://akrad.hatenablog.com/entry/2019/08/21/232701 の記事を書いた後、ネット上で、CounterBasedGauge64 という型があるという情報を見つけた。 「SNMPに Counter64型以外で64bitの範囲の値を表現できる型があるのかな?」と思ったが、さらに調べ…
競技プログラミングの問題を解く際の時間短縮のため、主題のメソッドを作成した。 // Stringの配列の中で、単語の出現回数をカウントする。 Map<String, Integer> countWordsAppearance(String[] words) { if (words == null || words.length == 0) { throw new IllegalArgume</string,>…
競技プログラミングの問題を解く際の時間短縮のため、Javaで配列が昇順 or 降順かを調べるメソッドを作成した。配列の要素が一個しかない場合、どう判定しようか迷ったが、そもそも要素が一個しかない場合、このメソッドを使うべきではないので、例外を上げ…
JavaプログラムのCPU使用率が高騰するパターンの一つについて簡単に纏める。 一時的に負荷が上がり、Javaプログラムのメモリ使用量が増大する。 メモリリソースが逼迫し、Javaが不要なメモリを解放するため、GCが頻繁に走るようになる。 GCがCPUリソースを消…
競プロの問題を解いていて必要になったので、今後の時間短縮のため、主題のメソッドを作成した。 // 配列の要素がすべて同じか調べる boolean isAllSame (int[] array) { if (array == null || array.length == 0) { throw new IllegalArgumentException("In…
競プロの問題を解いていると、文字列の反転が必要になることがある。以前は、文字列 (String) を char 型の配列に toCharArray() で変換し、char 型の配列を反転するロジックを自作してそれを使用し、その後に String.valueOf() で String に戻していた。 し…