Java String array created inside loop -
i have question regarding differences of following codes:
vector v = new vector(); string [] str_arr = new string[3]; for(int i=0; i<3; i++) { str_arr[0] = "a"; str_arr[1] = "b"; str_arr[2] = "c"; v.add(str_arr); } system.out.println(v.size()); //answer 3 versus
vector v = new vector(); for(int i=0; i<3; i++) { string [] str_arr = new string[3]; str_arr[0] = "a"; str_arr[1] = "b"; str_arr[2] = "c"; v.add(str_arr); } system.out.println(v.size()); //answer 3 the difference between both codes is, second one, string array created inside loop.
both codes produce same result, want know difference between these two.
the 2 snippets don't produce same result. first snippet adds same array object 3 times vector. second snippet adds 3 different array objects vector.
the results may seem same, since 3 arrays in second snippet contain same values.
if you'd change assignment
str_arr[0] = "a"; str_arr[1] = "b"; str_arr[2] = "c"; to
str_arr[0] = "a" + i; str_arr[1] = "b" + i; str_arr[2] = "c" + i; you'd see in first snippet, arrays in vector contain [a2,b2,c2], since there's 1 array that's getting overwritten.
on other hand, second snippet produce vector contains 3 different arrays - [a0,b0,c0],[a1,b1,c1],[a2,b2,c2].
Comments
Post a Comment