定义一个Object类型的数组,初始容量为10,当添加到第十个元素的时候,数组的长度扩展为原来的两倍
来源:互联网 发布:mac照片导出硬盘 编辑:程序博客网 时间:2024/06/05 06:44
刚入门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
}
}
- 定义一个Object类型的数组,初始容量为10,当添加到第十个元素的时候,数组的长度扩展为原来的两倍
- 当不确定输入数组为多少个的时候
- 第十四周 创建一个长度为20的整形数组
- 输入一个长度为10的数组
- 创建长度为16的整型数组,初始化前15个元素,将一个数插入到a[0]
- 第十四周项目一数组大折腾(2)创建一个长度为10的整形数组并初始化,由后往前(由第9个元素向第0个元素方向)输出数组中所有元素的值,改变数组元素的值,令所有的数组加倍,输出改变后的值。
- 问题: 一个数组长度为n, 求出其最小的k个元素并从小到大输出
- java__给定一个非负整数数组,假定你的初始位置为数组第一个下标。 数组中的每个元素代表你在那个位置能够跳跃的最大长度。 请确认你是否能够跳跃到数组的最后一个下标。
- 通过分类为数组元素添加一个倒序的方法.
- 定义一个int型的一维数组,包含10个元素,分别赋值为1~10, 然后将数组中的元素都向前移一个位置,
- 找出数组中重复的元素,或者丢失的元素,前提,数组长度N,元素为1到N
- Object转换为String[]数组,或者其他类型的数组
- Object转换为String[]数组,或者其他类型的数组
- 长度为0的数组
- 长度为0的数组
- 随机生成长度为100的数组,数组元素为1到10,统计出现次数最多和最少的元素
- 从长度为N的数组中找出所有M个元素组合的优化算法
- java删除长度为n的数组中第pos个位置的元素
- 设计模式之装饰者模式
- SpringMvc之Web初搭建(一)
- const iterator和const_iterator的区别
- 每个开发人员都应该知道的10个Linux命令
- 验证ANCI和UNICODE编码
- 定义一个Object类型的数组,初始容量为10,当添加到第十个元素的时候,数组的长度扩展为原来的两倍
- hashMap 实现原理
- SQL Server 中 RAISERROR 的用法 raiserror 是由单词 raise error 组成 raise 增加; 提高; 提升 raiserror 的作用: r
- Mac下Android Studio安装与问题解决
- 思考和目标的重要性
- babel && babel-preset-env
- 论文代发要求注意事项
- 理解TCP/IP协议栈(1)
- 【前端】小程序日历控件分享