List
* C# の List と同じ(ただ、C#の List はクラスだが、Java の List はインターフェース) * list.get(0) で取得(C# の list[0] と同じ) * list.size() (C# の list.length と同じ)
■ 空のリストを返す
Collections.emptyList(); を使用する
参考文献
http://blog.sgnet.co.jp/2015/06/java.htmlより抜粋 メソッドからコレクションを返す場合、無効な状態を表すのにnullを返すのではなく、 要素数0のコレクションを返すのが良い作法とされている。
■ 文字列 => List に変換するには
Arrays.asList(【文字列】(, 【文字列】, ...)) が便利// 文字列 => List String value = "TestValue"; List<String> values = Arrays.asList(value); List<String> sampleValues = Arrays.asList("TestValue1", "TestValue2", "TestValue3"); // 複数も可能
■ Listの初期化
// パターン1-1 List<String> list1 = new ArrayList<String>(); list1.add("a"); list1.add("b"); list1.add("c"); // パターン1-2 List<String> list1_2 = new ArrayList<String>(Arrays.asList("g", "h", "i")); // パターン2-1 : 匿名内部クラスを利用した方法(★以下「注意:匿名内部クラスを利用した方法について」を参照★) List<String> list2_1 = new ArrayList<String>() { { // イニシャライザー add("d"); add("e"); add("f"); } }; // パターン2-2 : Arrays.asList()を利用 List<String> list2_2 = Arrays.asList("g", "h", "i");
注意:匿名内部クラスを利用した方法について
* 『パターン2-1 : 匿名内部クラスを利用した方法』と『パターン1』/『パターン2』は 上記の例だけ言えば、得られる結果は同じであるが、インスタンス生成で違いがある。 => 詳細は以下の関連記事を参照のことhttps://blogs.yahoo.co.jp/dk521123/37174760.html
参考文献
https://potter0517.wordpress.com/2012/12/04/java-1/■ 読み取り専用のリストを作成する
* unmodifiableList()を使用するhttp://www.techscore.com/tech/Java/JavaSE/Utility/5-2/
http://www.02.246.ne.jp/~torutk/javahow2/collection.html
■ リストの定数化
* finalを付けても要素の追加や変更はできてしまうので、Collections.unmodifiableList()を付けるimport java.util.ArrayList; import java.util.Collections; import java.util.List; private static final List<String> PRODUCT_CODES; static { PRODUCT_CODES = Collections.unmodifiableList(new ArrayList<String>() { private static final long serialVersionUID = -5026360498609632073L; { add("X0001"); add("X0002"); add("X0003"); } }); }http://sakuramochi702.hatenablog.com/entry/2013/10/08/114958
■ リストをある範囲で抜き出す
// fromIndex (これを含む) から toIndex (これを含まない) の範囲の部分を抜き出す List<Integer> restInputs = inputs.subList(fromIndex, toIndex);
参考文献
http://mondenu.blog86.fc2.com/blog-entry-37.htmlhttp://www.moriwaki.net/wiki/index.php?%5B%5B%A5%AA%A5%D6%A5%B8%A5%A7%A5%AF%A5%C8%C7%DB%CE%F3%A4%CE%A5%BD%A1%BC%A5%C8%5D%5D
http://www.tohoho-web.com/java/collection.htm