破解--当List集合里的数据为11时,在删除一条数据,就会容量是多少?

当List集合里的数据为11时,在删除一条数据,就会容量是多少?

首先,当集合里的数据为11条时,集合容量为15,判断,当我们删除一条周,集合容量会如何变化?

package com.aking.jMap;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;

public class d {
	// 破解--集合数组扩容后是否会减小
	public static void main(String[] args) throws Exception {
		List<Integer> list = new ArrayList<>();
		list.add(1);
		list.add(2);
		list.add(3);
		list.add(4);
		list.add(5);
		list.add(6);
		list.add(7);
		list.add(8);
		list.add(9);
		list.add(10);
		list.add(11);
		// 删除下标为0和1的数据,也就是1,2
		list.remove(0);
		list.remove(1);
		System.out.println("集合容量:" + getArrayListLength(list)); // 该是默认容量值10
		System.out.println("集合数据:" + list);
	}

	// 查看ArrayList集合容量方法 -- 反射
	public static int getArrayListLength(List list) throws Exception {
		// 获取Class对象
		Class c = Class.forName("java.util.ArrayList");
		// 映射Class对象所表示类的属性
		Field field = c.getDeclaredField("elementData");
		// 设置访问表示为true
		field.setAccessible(true);
		// 返回指定对象上此 Field 表示的字段的值
		Object[] object = (Object[]) field.get(list);
		return object.length;
	}
}

  1. 集合里数据有10条时
    运行可得:
    集合容量:10
    集合数据:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  2. 往集合里再加一条
    运行可得:
    集合容量:15
    集合数据:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
  3. 移除一条数据
    运行可得:
    集合容量:15
    集合数据:[2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

你可能感兴趣的:(eclipse,java)