いももちのきもち

新米プログラマによる技術的メモ

Java

コレクションと配列をソート

・コレクション(List)のソート import java.util.Collections; List<Integer> ls = new ArrayList<Integer>(); Collections.sort(ls); Collections.reverse(ls); // 逆順にする ・配列のソート import java.util.Arrays; Arrays.sort(arr);</integer></integer>

ArrayListでpop()しようと思ったとき

キューをArrayListで代用しようと思ったときに、pop()メソッドがないので代わりを探しました。 →remove(int index) でArrayListの要素が返り値として得られます。 (参考)android - java howto ArrayList push, pop, shift, and unshift - Stack Overflow …

ボクシング変換とアンボクシング変換の用語確認

・ボクシング変換:基本型数値(例:int型、プリミティブ型)→数値オブジェクト(例:Integer型、数値ラッパークラス) Integer i = 9; ・アンボクシング変換:数値オブジェクト→基本型数値 使い道としては、数値をオブジェクトとして使いたい場合、コレクションの…

int[] を List<Integer>に変換するには

基本型変数の配列をコレクションに変換します。各要素についてみれば、普段はオートボクシングによって基本型数値と数値オブジェクトが自動的に変換されるので、今回の配列からの変換も簡単なのでは、と思いますが、残念ながらそうはいかないようです。 impo…

配列の宣言方法

Javaの配列の宣言方法は (i)配列型名 変数名; (ii)配列型名 変数名; の二種類があってどちらでもよいといわれています。 例: int[] a = {1, 2, 3}; int a[] = {3, 4, 5}; しかし、上記の例の場合 int a; として、変数aに格納されるものがint という型、と認…

複数変数の初期化

Javaで複数の変数をまとめて初期化する方法はないようです。 //ok。これを省略表記したいと思ったが int a = 1; int b = 1; int c = 1; //ok。少し省略できました。 int a = 1, b = 1, c = 1; // コンパイルエラー int a, b, c = 1; Scalaはできます。 //ok …

java.util.Arraysのメソッドメモ

JAVA 8 APIより、java.util.Arraysのメソッド一覧、オーバーロードされているものを除いた。 'asList', 'binarySearch', 'copyOf', 'copyOfRange', 'deepEquals', 'deepHashCode', 'deepToString', 'equals', 'fill', 'hashCode', 'parallelPrefix', 'parall…

配列の中身をダンプする(表示する)

public class Main { public static void main(String[] args) throws Exception { String[] s = {"python", "java", "scala"}; String[][] ss = {{"p", "y"}, {"t", "h"},{"o", "n"}}; System.out.println(s); System.out.println(ss); } } //結果1 [Ljava.…

Javaで0埋め

例:1000→0001000 のようにしたいです。 Pythonならzfillメソッドを使えばいいですね。 Javaでゼロを埋めます。 public class Main { public static void main(String[] args) throws Exception { String str = "1000"; String ans = String.format("%7s", st…

文字列を文字の配列に変換する

split関数に空文字""を渡すだけです。 String a = "ABCD"; String[] arr = a.split("");

ある自然数以下で最も近い2の累乗(の指数)を求める

例. n = 35 → 32 (2の5乗) 答え: 5 解法1 2^m double n = 35d; double m = 0d; while (!(Math.pow(2, m) <= n && n < Math.pow(2, m + 1))){ m++; } System.out.println(m); // 5.0 解法2 nを二進数表示する。桁数 - 1が求めるmである。 int n = 35; String …

参照型配列使用時の注意(Java)

基本型の配列の場合: int[] array = new int[3]; // {0, 0, 0} 参照型の配列の場合はnullが初期値に設定されるため、インスタンス生成前に使用しようとするとNullPointerExceptionが発生する。 //これならOK int N = 10; StringBuilder[] sb = new StringBu…

はてなでシンタックスハイライトの練習

シンタックスハイライトの練習のためにいくつか過去にかいたコードを載せてみます。ソースコードを色付けして記述する(シンタックス・ハイライト) - はてなダイアリーのヘルプ 数えたら483種類のハイライト形式に対応してますね(2016/1/5)。ハイライトも…