Java: How ArrayList manages memory

后端 未结 5 875
花落未央
花落未央 2021-01-12 17:13

In my Data Structures class we have studies the Java ArrayList class, and how it grows the underlying array when a user adds more elements. That is understood. However, I ca

5条回答
  •  粉色の甜心
    2021-01-12 18:01

    An ArrayList doesn't automatically shrink back, as far as i know. However, you can say something like:

    ArrayList al = new ArrayList();
    
    // fill the list for demo's sake
    for (int i = 0; i < 1000000; ++i)
    {
        al.add(i);
    }
    
    // now remove all but one element
    al.removeRange(1, al.size());
    
    // this should shrink the array back to a decent size
    al.trimToSize();
    

    Note, the amount of memory available probably won't change til the GC runs again.

提交回复
热议问题