2014年4月7日月曜日

要素一つのリストを作る

Draftに入ったままでずっと公開されていなかった…
2ヶ月ほど漬け込んでしまった。

-------------
最近仕事がコーディングメインで楽しいです。

さて、本題です。
既存機能のエンハンスしてる時に、
使いたいメソッドの引数がリストなのに、
リストの中身に入れたい要素が一つだけ、
という瞬間がありました。

何も知らずにやると、

DemoClassA demoA = new DemoClassA();
demo.setName("hoge");
List<DemoClassA> demoAList = new ArrayList();
demoAList.add(demoA);
demoMethod(demoAList);

となってしまうと思います。
なんか冗長でやだー_(:3」∠)_

でも、要素一つのリストを作りたい需要ってあると高いと思います。
きっと便利なメソッドがあるはずだ‼︎
と調べてみたらやっぱりありました!

Collections.singletonList()

これを使えば簡単に要素一つのリストが作れます!
先ほどのコードを書き換えると

List<DemoClassA> demoAList = new ArrayList();
demoAList.add(demoA);
demoMethod(demoAList);

ってのが、

demoMethod(Collections.singletonList(demoA));

となります!
コードがシンプルになってありがたいです。
これから積極的に使っていきたい。

ちなみに、SetとMapも同様にあります。

Setの場合は
Set<T> hoge = Collections.singleton(T o);

Mapの場合は
Map<K, V> foo =Collections.singletonMap(K key, V value);

詳しくはこちらを参照ください。
http://docs.oracle.com/javase/8/docs/api/java/util/Collections.html


これから使えそうなところはガンガン使っていきたいです。

0 件のコメント:

コメントを投稿