作者LaPass (LaPass)
看板java
標題Re: [問題] arraylist裡面放string[]會很怪嗎
時間Thu May 7 13:27:10 2015
※ 引述《tnsshnews (tnsshnews)》之銘言:
: 今天看到別人的程式碼在arraylist裡面的class
: 放一個String[], 如下
: ArrayList<String[]> aaa = new ArrayList<String[]>();
: 請問這樣是可以的嗎?
: 會很怪嗎?
: 印象中沒有看過有人這樣寫, 謝謝
這只是好玩 ^.<
ArrayList<ArrayList> a = new ArrayList<>();
ArrayList<ArrayList> b = new ArrayList<>();
ArrayList<ArrayList> c = new ArrayList<>();
ArrayList<String> d = new ArrayList<>();
d.add("HELLO");
c.add(d);
b.add(c);
a.add(b);
String s= (String)
((ArrayList<ArrayList>
) a.
get(0).
get(0)).get(0).get(0);
System.out.println(s);
容器物件(Collection)裡面放的東西其實是 Object
泛型是語法糖,他會在你取出物件時幫你轉形成你尖括弧<>中的型別
像是藍色那個a.
get(0) 取出來後會是ArrayList
因為沒指定泛型,所以相當於ArrayList<Object>
亮藍色的.
get(0)取出來後是Object,所以還要轉型才會變成 ArrayList<ArrayList>
不過實務上請不要塞多層,那會讓維護的人很想砍人
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.38.76.40
※ 文章網址: https://www.ptt.cc/bbs/java/M.1430976433.A.97F.html
推 Frozenmouse: ArrayList<ArrayList<ArrayList<ArrayList<String>>> 05/08 08:55
→ Frozenmouse: > 一行塞不下啦( ゚д゚) 05/08 08:55
推 chen1025: 用太多層 資料多時 記憶體的使用效率很差 05/08 20:24
推 Frozenmouse: 我覺得兩層是實務上的極限了,再多真的會想打人XD 05/12 00:04
→ Frozenmouse: 通常要塞到第二層就要考慮抽出來一個class了… 05/12 00:05
→ Killercat: 其實塞兩層array取代[][]算是很常見的做法 05/12 13:11
→ Killercat: C++是這樣幹的(vector<vector<Foo> >), java也是 05/12 13:12
→ Killercat: 至於三層..hum...這資結真的需要三層以上嗎 該檢討一下 05/12 13:13
→ Killercat: 不過java沒有C++的typedef 整體看起來相當不賞心悅目 05/12 13:13