您的位置:首页 > 理论基础 > 数据结构算法

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

2019-04-25 18:16 134 查看

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);
}

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: