JavaのArrayListについて追記
先日にエントリーでえらいことを書いてしまったと反省。
http://d.hatena.ne.jp/takashi4233/20090521
Javaはnewした時点で新たにメモリ領域を確保するんですね。
つまり、clone()なんて使わなくても下記の方法で大丈夫みたい。でもすると今度はどこでメモリの解放をするんだろう?
public static void init(ArrayList <ArrayList<String>> arys){ ArrayList <String> ary = new ArrayList <String> (); ary.add("rec1"); ary.add("Apple"); ary.add("A"); ary.add("120"); arys.add(ary); ary = new ArrayList <String> (); System.out.println("Check1 = " + arys.size() + "|" + arys.get(0).size()); ary.add("rec2"); ary.add("Orange"); ary.add("B"); ary.add("100"); arys.add(ary); ary = new ArrayList <String> (); System.out.println("Check2 = " + arys.size() + "|" + arys.get(0).size()); ary.add("rec3"); ary.add("Grape"); ary.add("A"); ary.add("80"); arys.add(ary); ary = new ArrayList <String> (); ary.add("rec4"); ary.add("Orange"); ary.add("A"); ary.add("100"); arys.add(ary); ary = new ArrayList <String> (); ary.add("rec5"); ary.add("Apple"); ary.add("C"); ary.add("150"); arys.add(ary); ary = new ArrayList <String> (); ary.add("rec6"); ary.add("Orange"); ary.add("A"); ary.add("180"); arys.add(ary); ary = new ArrayList <String> (); }
メモリの解放と言えば、SunがOracleに買収されたせいで、有能なgcが有償版にしか搭載されないかも知れないらしいね。
ウワサで聞いただけだから実際のところはわからないけど。
成功すればM$のVisualstudioとどう程度の利益を上げれるかもね。
なんか、ベーシックな部分が有償になるのはあまり良い気がしないねぇ〜。