回炉篇3—数据结构(2)之数组

数组

概念

简单说,是装同一类型元素的集合。 装强调是一个容器,同一类型元素是说必须类型相同,这里先不考虑Object类型。

定义格式

a.数据类型[ ] 数组名
b.数据类型 数组名[ ]

数组的初始化

开辟内存空间,并为数组中的每个元素赋予初始值。

a.动态初始化 :只给长度,系统给初始值。
例如:int[ ] a=new int[3];
只给出长度即可,由系统给每个元素赋值。

b.静态初始化 :给出初始化值,由系统决定长度。
例如:int[ ] a=new int[ ]{1,2,3 ,…};
int[ ] b={1,2,3,… };
方法二是方法一的简化版,只用给出每个元素的初始值,由系统决定长度。

数组的遍历

for(int i=0;x<5;x++){
循环内容
}

数组代码思路
    public class Array{
        	//定义数组
        	private int [ ] array;
        	//实际长度
        	private int elems;
        	//最大长度
        	private int length;
    	
    	//默认构造函数
    	public MyArray(){
    		elems = 0;
    		length = 10;
    		array = new int[ length ];
    	}
    	//构造函数
    	public MyArray(int length){
    		elems = 0;
    		this.length=length;
    		array = new int[ length ];
    	}
    	
    	//获取有效长度
    	public int getSize(){
    		return elems;
    	}
    
    	//遍历显示元素
    	public void display(){
    		for(int i=0;i<elems;i++){
    			System.out.printn("array["+i+"]="+array[i]);
    		}
    	}
    	//添加元素
    	public boolean add(int value){
    		if(elems== length){
    			return false;
    		}else{
    			array[elems]=value;
    			elems++;
    		}
    		return true;
    	}
    	//根据下标获取元素
    	public int get(int i){
    		if(i<0 || i>elems){
    			System.out.printn("访问下标越界");
    		}else{
    			rerturn array[i];
    		}
    	}
    	//查找元素
    	public int find(int search){
    		int i ;
    		for(i = 0 ; i < elems ;i++){
    			if(intArray[i] == search){
    				break;
    			}
    		}
    		if(i == elems){
    			return -1;
    		}
    		return i;
    	}
    	//删除元素
    	public boolean delete(int value){
    	int k=find(value);
    	if(k==-1){
    		return false;
    	}else{
    	if(k == elems-1){
    		elems--;
    	}else{
    		for(int i = k; i< elems-1 ; i++){
    			intArray[i] = intArray[i+1];
    		}
    			elems--;
    		}
    		return true;
    		}
    	
    	//修改数据
    	public boolean modify(int oldValue,int newValue){
    		int i = find(oldValue);
    		if(i == -1){
    			System.out.println("需要修改的数据不存在");
    			return false;
    		 }else{
    		 	 intArray[i] = newValue;
    		 	 return true;
    		 }
    	}
    	
    }

References

Java数据结构和算法(二)——数组

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值