HeapSpace requirement in java - Arrays.sort() vs Collections.sort() -


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