数组:存储一组类型相同的数据
在内存中分配连续的空间,数组创建时要制定容量
数据类型:? ?int[ ] arr=new int[ 10];
索引从0开始,
常见错误:NullPointException ArrayIndexOutOfBoundsException
常见数组:字符串,对象数组,哈希表
java中的数组可以进行二次封装,
向数组中删除元素:
public int removeByIndex(int index) {
if (index < 0 || index >= this.capacity) {
throw new IllegalArgumentException("index is invalid.");
//删除操作:
// 找到删除位置,删除位置后的元素要前移 arr[j-1]=arr[j
}
for (int i = index + 1; i < this.size; i++) {
this.data[i - 1] = this.data[i];
}
this.size--;
return data[index];
}
/*1.向数组中添加元素,会出错(扩容)
* 2.仙子阿只能处理int类型,如何处理多种类型(泛型)
* 3.删除元素后,空间利用率低(缩容)
* */
向数组中添加元素:
//向数组中添加元素
public void add(int item) {
//this.size 指的是元素的位置
this.data[this.size] = item;
this.size++;
}
//向数组中指定位置添加
public void addInIndex(int index,int val){
if(index<0||index>this.size){
throw new IllegalArgumentException("索引不存在");
}
//从index位置开始元素需要进行后移
for(int i=this.size-1;i>=index;i--){
this.data[i+1]=this.data[i];
}
this.size++;
}
修改指定位置的值:
//修改指定位置的值
public int modifyValueByIndex(int index, int value) {
//入参一定进行判断
if (index < 0 || index >= this.capacity) {
throw new IllegalArgumentException("index不存在");
}
return this.data[index];
}
获取指定位置的值:
//获取指定位置的值
public int getValueByIndex(int index) {
if (index < 0 || index >= this.capacity) {
throw new IllegalArgumentException("index is invalid.");
}
return this.data[index];
}
动态数组:(可以缩容或者扩容)