import java.lang.reflect.Field;
import java.util.ArrayList;
public class ArrayListDemo {
public static void main(String[] args) {
ArrayList<Integer> list1 = new ArrayList<>();
//获取容量
Integer capacity = getCapacity(list1);
int size = list1.size();
System.out.println("list1的容量"+capacity);
System.out.println("list1的大小"+size);
System.out.println("------------------------");
ArrayList<Integer> list2 = new ArrayList<>();
list2.add(1);
//获取容量,arraylist初始化容量是10
capacity = getCapacity(list2);
size = list2.size();
System.out.println("list2的容量"+capacity);
System.out.println("list2的大小"+size);
System.out.println("------------------------");
ArrayList<Integer> list3 = new ArrayList<>();
//获取容量,arraylist初始化容量是10
capacity = getCapacity(list3);
for (int i = 0; i < 10 ; i++) {
list3.add(i);
}
capacity = getCapacity(list3);
size = list3.size();
System.out.println("list3的容量"+capacity);
System.out.println("list3的大小"+size);
System.out.println("------------------------");
ArrayList<Integer> list4 = new ArrayList<>();
//获取容量,arraylist初始化容量是10
capacity = getCapacity(list4);
for (int i = 0; i < 11 ; i++) {
list4.add(i);
}
capacity = getCapacity(list4);
size = list4.size();
System.out.println("list4的容量"+capacity);
System.out.println("list4的大小"+size);
System.out.println("------------------------");
ArrayList<Integer> list5 = new ArrayList<>();
//获取容量,arraylist初始化容量是10
capacity = getCapacity(list5);
for (int i = 0; i < 16 ; i++) {
list5.add(i);
}
capacity = getCapacity(list5);
size = list5.size();
System.out.println("list5的容量"+capacity);
System.out.println("list5的大小"+size);
System.out.println("------------------------");
}
public static Integer getCapacity(ArrayList list){
Integer length = null;
Class clazz = list.getClass();
Field field;
try {
field = clazz.getDeclaredField("elementData");
field.setAccessible(true);
Object[] object = (Object[]) field.get(list);
length = object.length;
return length;
} catch (Exception e) {
e.printStackTrace();
}
return length;
}
}
数组扩容
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 1. .Collection接口:Collection表示一组对象,他是集中收集的意思,就是把一组数据收集起来 C...
- Jdk1.8 在实现HashMap时,在涉及到数组扩容之后需要原数组中的元素复制到新的数组时,jdk 1.7是再给...