java数组

复制代码

  1 package com.oracle.demo01;
  2  
  3 public class MyArray {
  4     //定义一个数组
  5     private int [] intArray;
  6     //定义数组的实际有效长度
  7     private int elems;
  8     //定义数组的最大长度
  9     private int length;
 10      
 11     //默认构造一个长度为50的数组
 12     public MyArray(){
 13         elems = 0;
 14         length = 50;
 15         intArray = new int[length];
 16     }
 17     //构造函数,初始化一个长度为length 的数组
 18     public MyArray(int length){
 19         elems = 0;
 20         this.length = length;
 21         intArray = new int[length];
 22     }
 23      
 24     //获取数组的有效长度
 25     public int getSize(){
 26         return elems;
 27     }
 28      
 29     /**
 30      * 遍历显示元素
 31      */
 32     public void display(){
 33         for(int i = 0 ; i < elems ; i++){
 34             System.out.print(intArray[i]+" ");
 35         }
 36         System.out.println();
 37     }
 38      
 39     /**
 40      * 添加元素
 41      * @param value,假设操作人是不会添加重复元素的,如果有重复元素对于后面的操作都会有影响。
 42      * @return添加成功返回true,添加的元素超过范围了返回false
 43      */
 44     public boolean add(int value){
 45         if(elems == length){
 46             return false;
 47         }else{
 48             intArray[elems] = value;
 49             elems++;
 50         }
 51         return true;
 52     }
 53      
 54     /**
 55      * 根据下标获取元素
 56      * @param i
 57      * @return查找下标值在数组下标有效范围内,返回下标所表示的元素
 58      * 查找下标超出数组下标有效值,提示访问下标越界
 59      */
 60     public int get(int i){
 61         if(i<0 || i>elems){
 62             System.out.println("访问下标越界");
 63         }
 64         return intArray[i];
 65     }
 66     /**
 67      * 查找元素
 68      * @param searchValue
 69      * @return查找的元素如果存在则返回下标值,如果不存在,返回 -1
 70      */
 71     public int find(int searchValue){
 72         int i ;
 73         for(i = 0 ; i < elems ;i++){
 74             if(intArray[i] == searchValue){
 75                 break;
 76             }
 77         }
 78         if(i == elems){
 79             return -1;
 80         }
 81         return i;
 82     }
 83     /**
 84      * 删除元素
 85      * @param value
 86      * @return如果要删除的值不存在,直接返回 false;否则返回true,删除成功
 87      */
 88     public boolean delete(int value){
 89         int k = find(value);
 90         if(k == -1){
 91             return false;
 92         }else{
 93             if(k == elems-1){
 94                 elems--;
 95             }else{
 96                 for(int i = k; i< elems-1 ; i++){
 97                     intArray[i] = intArray[i+1];
 98                    
 99                 }
100                  elems--;
101             }
102             return true;
103         }
104     }
105     /**
106      * 修改数据
107      * @param oldValue原值
108      * @param newValue新值
109      * @return修改成功返回true,修改失败返回false
110      */
111     public boolean modify(int oldValue,int newValue){
112         int i = find(oldValue);
113         if(i == -1){
114             System.out.println("需要修改的数据不存在");
115             return false;
116         }else{
117             intArray[i] = newValue;
118             return true;
119         }
120     }
121  
122 }  
复制代码
posted @ 2019-09-20 16:30  嘻嘻哈喽  阅读(165)  评论(0编辑  收藏  举报