あとHashMapとMap、HashSetとSetの違いな(´・ω・`)
答えからいうと
ArrayListはクラス、Listはインターフェース(´・ω・`)
HashMapはクラス、Mapはインターフェース(´・ω・`)
HashSetはクラス、Setはインターフェース(´・ω・`)
これで納得しない人は多分インターフェース(interface)の意味を全くわかってないんだよ( ゚д゚ )
ArrayListとListで説明すると
配列クラスはArrayListクラスだけでなく、
LinkedList
RoleList
ListResultBean
などがあるんだよ(・∀・)
んでそいつらをまとめてくれるのがListだ(・∀・)
たとえば
ArrayList
RoleList
ListResultBean
を
List
List
List
ってできるんだよ(´・ω・`)
だから何って?( ゚д゚ )
ぢゃあこれで共通関数とか使うときのメソッドの引数でArrayListとか使いたいとこうなる(´・ω・`)
void test(String str, ArrayList list);
ってなる。
これだとRoleList、ListResultBeanも使えないので更に2つのメソッドが必要になる
void test(String str, RoleList list);
void test(String str, ListResultBean list);
これだとtestの処理はだいたい一緒なのに同じメソッドを3つ作ることになる(´・ω・`)
これめんどくさいよな?(´・ω・`)
うち「ArrayListしか使わねーよ。(゚д゚)バーカ」
っていう人はここでブラウザバック押して帰ってくれ( ゚д゚ )
ぢゃあこれをListでやるとどうなるかというと(´・ω・`)
void test(String str, List list);
これだけで
ArrayList
LinkedList
RoleList
ListResultBean
全部使えるんだよ(´・ω・`)
public void hoge() { String str = "ほげー" ArrayListlist1 = new ArrayList<>(); RoleList list2 = new RoleList<>(); ListResultBean list3 = new ListResultBean<>(); // テスト呼び出し test(str, list1); // エラー test(str, list2); // エラー test(str, list3); } void test(String str, ArrayList list) { // 処理 }
このプログラムがListを使うことで
public void hoge() { String str = "ほげー" ArrayListlist1 = new ArrayList<>(); RoleList list2 = new RoleList<>(); RoleList list3 = new ListResultBean<>(); // テスト呼び出し test(str, list1); // テスト呼び出し test(str, list2); // テスト呼び出し test(str, list3); } void test(String str, List list) { // 処理 }
ってなるからね(*´ω`*)
ArrayListもRoleListもRoleListもみんなみんなListで幸せになれるね(*´ω`*)
[LinkedList] < ぼくもいるよ~~~(泣)
0 件のコメント:
コメントを投稿