`

自定义数组

 
阅读更多
/**
 * java 模拟数组
 * @author zm
 */
public class MyArray {

	private int size; // 实际个数
	
	private int[] arr;
	
	private int max; // 数组最大长度

	public MyArray(){
		arr = new int[10];
		max = 10;
	}
	
	public MyArray(int size){
		arr = new int[size];
		max = size;
	}
	
	// 尾部插入数据
	public void insert(int val){
		if(size < max){
			arr[size] = val;
			size ++;
		}else{
			throw new RuntimeException("超出数组长度,不能添加");
		}
	}
	
	// 展示数组内数据
	public void display(){
		if(this.size > 0){
			System.out.print("[");
			for(int i=0; i<size; i++){
				System.out.print(arr[i] +" ");
			}
			System.out.print("]");
		}else{
			System.out.print("[]");
		}
	}
	
	// 根据数值查找所在数组内的角标
	public int searchByVal(int val){
		
		if(this.size > 0){ 
			int i ;
			for(i=0; i<size; i++){
				if(arr[i] == val){
					break;
				}
			}
			if(i == size){
				return -1;
			}else{
				return i;
			}
		}else{
			throw new RuntimeException("数组为空");
		}
		
	}
	// 根据角标查找数组内的数据
	public int searchByIndex(int index){
		
		if(this.size > 0){ 
			if(index >= size || index <0){
				throw new RuntimeException("角标越界");
			}
			return arr[index];
		}else{
			throw new RuntimeException("数组为空");
		}
		
	}
	// 删除指定角标内的数据
	public void delete(int index){ 
		if(this.size > 0){ 
			if(index >= size || index <0){
				throw new RuntimeException("角标越界");
			}
			// 数据前移
			for(int i = index; i<size-1; i++){// i =0 i < z; i++  
				arr[i] = arr[i + 1];
			}
			size --;
			System.out.println(size);
		}else{
			throw new RuntimeException("数组为空");
		}
	}
	
	// 更新数组元素
	public void change(int index, int value){
		
		if(this.size > 0){ 
			if(index >= size || index <0){
				throw new RuntimeException("角标越界");
			}
			// 数据前移
			arr[index] = value;
		}else{
			throw new RuntimeException("数组为空");
		}
		
	}
	
	
	
	public static void main(String[] args) {
		
		MyArray array = new MyArray(3);
		array.insert(1);
		array.insert(2);
		array.insert(3);
		//array.insert(4);
		
		array.display();
		
		/*int index = array.searchByVal(5);
		System.out.println(index);*/
		
		/*int value = array.searchByIndex(2);
		System.out.println(value);*/
		
		/*array.delete(1);
		array.display();*/
		array.change(0, 4);
		array.display();
	}

	
}


 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics