i have written method sorts arraylist , them swaps consecutive elements in arraylist. facing issue -
if implement method using collections.sort() gives heapsize error while if use arrays.sort() not , run successfully.
public arraylist<integer> sortandswap(arraylist<integer> a) { collections.sort(a); for(int = 0; < a.size()-1; i+=2) { int temp = a.get(i); a.add(i, a.get(i+1)); a.add(i+1, temp); } return a; } this method gives below error -
exception in thread "main" java.lang.outofmemoryerror: java heap space @ java.util.arrays.copyof(arrays.java:3210) @ java.util.arrays.copyof(arrays.java:3181) @ java.util.arraylist.grow(arraylist.java:261) @ java.util.arraylist.ensureexplicitcapacity(arraylist.java:235) @ java.util.arraylist.ensurecapacityinternal(arraylist.java:227) @ java.util.arraylist.add(arraylist.java:475) @ solution.wave(solution.java:7) @ main.main(main.java:322)
while if modify follows
public arraylist<integer> sortandswap(arraylist<integer> a) { integer []arr = new integer[a.size()]; a.toarray(arr); arrays.sort(arr); for(int = 0; < a.size()-1; i+=2) { int temp = arr[i]; arr[i] = arr[i+1]; arr[i+1] = temp; } = new arraylist<integer>(arrays.aslist(arr)); return a; } it runs fine , gives desired results. why happening, can explain ? !
for swap operation call add when should use set. increasing list endlessly.
Comments
Post a Comment