定义一个Object类型的数组,初始容量为10,当添加到第十个元素的时候,数组的长度扩展为原来的两倍 | 您所在的位置:网站首页 › objecttemp › 定义一个Object类型的数组,初始容量为10,当添加到第十个元素的时候,数组的长度扩展为原来的两倍 |
刚入门java,把自己之前考试的一个问题分享出来,一来增加自己的记忆力,也希望能帮助刚开始学习的你 如题:定义一个Object类型的数组,初始容量为10,当添加到第十个元素的时候,数组的长度扩展为原来的两倍 思路: 1.定义一个容量为10的Object类型的数组:Object [ ] obj = new Object[10]; 2.增加元素,并且判断当增加到10个元素的时候,扩展数组容量(我的思路是用System.arraycopy(),借助一个中间数组temp,将原数组copy进去temp然后再赋值给obj) 即: ①Object [ ] temp = new Object [obj.length*2] ;//这个中间数组容量是原数组的两倍 ②System.arraycopy(obj,0,temp,0,obj.length);// 将原数组copy进去temp ③obj = temp;//将temp赋值给原数组obj 可参考我实现的方式: /* * 定义一个Object类型的数组,初始容量为10, * 当添加到第十个元素的时候,数组的长度扩展为原来的两倍 * @author qyj11day * */ public class AddLength { private Object[] obj;// object数组 private int index;// 数组下标
public Object[] getObj() { return obj; }
public void setObj(Object[] obj) { this.obj = obj; }
public int getIndex() { return index; }
public void setIndex(int index) { this.index = index; }
public AddLength() {// 默认构造函数 init(); }
private void init() {// 数组的初始化 this.index = 0; this.obj = new Object[10]; }
public void addLength(Object ele) {// 添加元素 obj[index] = ele; index++; // 如果数组下标达到数组长度就开始扩容 if (index == obj.length) { Object[] temp = new Object[obj.length * 2]; System.arraycopy(obj, 0, temp, 0, obj.length); obj = temp; } }
// 通过下标获取数组里的元素 public Object getEle(int index) { return obj[index]; }
public static void main(String[] args) { AddLength a = new AddLength(); int sum = 0; for (int i = 0; i < 20; i++) { a.addLength(i); } //下面做一个简单验证 for (int i = 0; i < a.getIndex(); i++) { sum += (int) a.getEle(i); } System.out.println(a.getIndex()); // 20 System.out.println(sum); // 190
} }
|
CopyRight 2018-2019 实验室设备网 版权所有 |