Re: [問題] arraylist裡面放string[]會很怪嗎

看板java作者 (LaPass)時間10年前 (2015/05/07 13:27), 編輯推噓3(306)
留言9則, 3人參與, 最新討論串1/1
※ 引述《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

05/08 08:55, , 1F
ArrayList<ArrayList<ArrayList<ArrayList<String>>>
05/08 08:55, 1F

05/08 08:55, , 2F
> 一行塞不下啦( ゚д゚)
05/08 08:55, 2F

05/08 20:24, , 3F
用太多層 資料多時 記憶體的使用效率很差
05/08 20:24, 3F

05/12 00:04, , 4F
我覺得兩層是實務上的極限了,再多真的會想打人XD
05/12 00:04, 4F

05/12 00:05, , 5F
通常要塞到第二層就要考慮抽出來一個class了…
05/12 00:05, 5F

05/12 13:11, , 6F
其實塞兩層array取代[][]算是很常見的做法
05/12 13:11, 6F

05/12 13:12, , 7F
C++是這樣幹的(vector<vector<Foo> >), java也是
05/12 13:12, 7F

05/12 13:13, , 8F
至於三層..hum...這資結真的需要三層以上嗎 該檢討一下
05/12 13:13, 8F

05/12 13:13, , 9F
不過java沒有C++的typedef 整體看起來相當不賞心悅目
05/12 13:13, 9F
文章代碼(AID): #1LIlUnb_ (java)
文章代碼(AID): #1LIlUnb_ (java)