この記事は「Java競技プログラミング」の後半部分を元に書き直したものです。前半部分は「Javaで競技プログラミングをするときの罠とテク」です。 Javaで競技プログラミングをするときによく使うクラスやメソッドをまとめました。 各クラスのより詳細な説明はドキュメントを参照してください。 https://docs.oracle.com/javase/jp/8/docs/api/index.html?overview-summary.html 計算時間について、定数時間は要素数と関係ない時間で終わることを表します。対数時間は要素数$n$に対して$O ({\rm log}(n))$の時間で終わることを表します。線形時間は要素数に比例した時間で終わることを表します。 線形時間より対数時間、対数時間より定数時間の方が良いです。定数時間か対数時間なら十分高速と言えます。 CollectionsやMap