Java入门之数据结构(数组)

package cn.itsource_06IntArrayMethod;

import java.util.Arrays;
/*自定义容器增删改查数组实现
**/
public class IntArray {

Object [] data;
int size;
public IntArray(){
	this(5);
}
public IntArray(int length){
	data = new Object[length];
}
void add(Object i){
	if(size>=data.length){
		Object[] newarr = new Object[size+10];
		System.arraycopy(data, 0, newarr, 0, size);
		data = newarr;
	}
	data[size] = i;
	size++;
}
int size(){
	return size;
}
@Override
public String toString() {
	Object[] newarr = new Object[size];
	System.arraycopy(data, 0, newarr, 0, size);
	return Arrays.toString(newarr);
}
//索引越界抛出异常
public Object getElementByTndex(int index){
	if(index<0||index>=size){
		throw new ArrayIndexOutOfBoundsException("索引越界,应该在:0~"+(size-1));
	}
	return data[index];
}
public int getIndexByElement(Object obj){
	for(int i = 0;i < size; i++){
		if(obj.equals(data[i])){
			return i;
		}
	}
	return -1;
}
/*1.删除指定索引处的元素
 * */
public void delElementByIndex(int index){
	if(index<0||index>=size)
		throw new ArrayIndexOutOfBoundsException("索引越界,应该在:0~"+(size-1));
	
	System.arraycopy(data, index+1, data, index, size-index-1);
	size--;
}
/*	2.删除指定的第一个元素
 * 		1.根据元素查找索引
 * 		2.根据索引删除元素
 * */
public void delFirstElement(Object obj){
	int index = getIndexByElement(obj);
	delElementByIndex(index);
}

}
package cn.itsource_06IntArrayMethod;

public class test {

public static void main(String[] args) {
	IntArray ia = new IntArray(10);
	ia.add(20);
	ia.add("你好");
	ia.add(30);
	ia.add(30);
	ia.add(30);
	ia.add(10);
	ia.add(30);
	ia.add(30);
	ia.add(30);
	int size = ia.size();
	System.out.println(ia);
	System.out.println(size);
	Object elementByTndex = ia.getElementByTndex(1);
	System.out.println(elementByTndex);
	int intdexByElement = ia.getIndexByElement(10);
	System.out.println(intdexByElement);
	ia.delElementByIndex(1);
	System.out.println(ia.size());
	System.out.println(ia);
	ia.delFirstElement(30);
	System.out.println(ia.size());
	System.out.println(ia);
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值