技術メモ

神奈川在住のITエンジニアの備忘録。おもにプログラミングやネットワーク技術について、学んだことを自分の中で整理するためにゆるゆると書いています。ちゃんと検証できていない部分もあるのでご参考程度となりますが、誰かのお役に立てれば幸いです。

2019-10-01から1ヶ月間の記事一覧

Javaのプリミティブ型のラッパーオブジェクトはイミュータブル

整数の入ったリストを加算する場合、普段、以下のようなコードを書いている。 // リストから一個一個取り出して、加算して戻す。 List<Integer> numlist = new ArrayList<>(Arrays.asList(1, 2, 3)); for (int i = 0; i < numlist.size(); i++) { int num = numlist.g</integer>…

Listを走査しながら要素を削除する。

Java で、List を走査しながら要素を削除すると、ConcurrentModificationException が発生することがある。例えば、以下のようなケース。 List<Integer> nums = new ArrayList<>(); nums.add(1); nums.add(2); nums.add(3); nums.add(-1); nums.add(4); nums.add(-2);</integer>…

yaml ファイル内のハイフン

先日、yaml ファイルを扱う機会があった時、 person: - id: 1 name: xxx address: yyy nextItem: zzz と、 person: - id: 1 - name: xxx - address: yyy nextItem: zzz の違いについて理解するのに少し時間がかかったので、ここに纏めておく。Best Online YA…

Java の Map をソートする。

プログラミングの問題を解いていて必要になったので、Javaの Map をソートする方法を以下に纏める。調べてみたところ、いろんな方法があるようだが、自分で試してみてうまくいった方法をここにメモしておく。例えば、以下の map をソートするとする。 Map<Integer, String> ma</integer,>…

SNMPv3のエンジンIDは何に使うのか。

このブログでも何度かSNMPv3のエンジンIDについて書いたが、そもそもエンジンIDが何に使われるのか、ちゃんと調べたことはなかった。 そこで、今回、RFC など調べてみたところ、エンジンID は SNMPv3 通信において、認証や暗号化(復号化)を行う時の鍵として…

Javaで 2つの配列の共通部分を取得する。

競技プログラミングの問題を解いていて必要になったので、Javaで 2つの配列の共通部分を取得するメソッドを作成した。1つ目のメソッドは int 用で、2つ目は String 用。 // 二つの数値の配列のうち、共通する項目を取り出す。 int[] getCommonNumbers (in…

int型の配列に対する Arrays.asList().contains() は、意図通り動作しない。

Java で、int型の配列に特定の値が入っているかどうか確認するために、以下のようなコードを書いたら、意図通りに動かなかった。 int[] intArray = new int[]{0, 1, 2}; if (Arrays.asList(intArray).contains(1)) { System.out.print("Found from intArray"…

指定した桁数の全ての2進数文字列を生成する。

競技プログラミングの問題を解いていて必要になったので、Javaで、指定した桁数の全ての2進数文字列のリストを生成するメソッドを作成した。 List<String> generateZeroOneCombination (int length) { if (length < 1) { throw new IllegalArgumentException("Input </string>…

SNMPのnoSuchNameとnoSuchObject/noSuchInstanceとの違い

主題の件について、簡単に纏める。 どちらも、SNMPエージェント内に対象のMIBが存在しないことを示すものだが、noSuchName はSNMPのエラー・ステータスであり、noSuchObject/noSuchInstance は varbind に入ってくるもの(MIB値)なので、そもそも種類が違うも…