• 爪哇国新游记之三----自创动态数组类


    package array;
    
    public class DArray{
        private int[] arr;
        private int currCount;
        private static final int InitSize=2;
        
        public DArray(){
            arr=new int[InitSize];
        }
        
        public void add(int number){
            if(currCount>=arr.length){
                // 实际数量已经超过数组长度,需要扩容
                int[] arrNew=new int[arr.length*2];// 扩容
                
                // 填充原值
                for(int j=0;j<arr.length;j++){
                    arrNew[j]=arr[j];
                }
                
                // 原有数组空间放弃,arr指向新创建的数组空间(创建在堆中)
                arr=arrNew;
                
                arr[currCount]=number;
                currCount++;
            }else{
                // 无需扩容
                arr[currCount]=number;
                currCount++;
            }
        }
        
        public void display(){
            System.out.print("动态数组合法元素为:");
            for(int i=0;i<currCount;i++){
                System.out.print(arr[i]+",");
            }
            System.out.println();
        }
        
        public void displayAll(){
            System.out.print("动态数组所有元素为:");
            for(int i=0;i<arr.length;i++){
                System.out.print(arr[i]+",");
            }
            System.out.println();
        }
        
        public int[] getArray(){
            int[] arrOutput=new int[currCount];
            
            for(int i=0;i<currCount;i++){
                arrOutput[i]=arr[i];
            }
            
            return arrOutput;
        }
        
        public int get(int index){
            return arr[index];
        }
        
        public static void main(String[] args){
            DArray d=new DArray();
            d.add(1);
            d.add(2);
            d.add(3);
            d.add(4);
            d.add(5);
            d.add(6);
            d.add(7);
            d.add(8);
            d.add(9);
            d.display();
            d.displayAll();
            
            int[] arrOutput=d.getArray();
            System.out.print("arrOutput:");
            for(int i=0;i<arrOutput.length;i++){
                System.out.print(arrOutput[i]+",");
            }
            System.out.println();
            
            System.out.println("第8号元素为"+d.get(8));
        }
    }

    这个类,既让学生对基础数据结构有一定了解,又为后面的学习铺开了道路。

  • 相关阅读:
    [洛谷P3931]SAC E#1
    洛谷 P4127 [AHOI2009]同类分布 解题报告
    洛谷 P4475 巧克力王国 解题报告
    洛谷 P4148 简单题 解题报告
    洛谷 P2463 [SDOI2008]Sandy的卡片 解题报告
    洛谷 P4211 [LNOI2014]LCA 解题报告
    洛谷 P4074 [WC2013]糖果公园 解题报告
    AT1219 歴史の研究 解题报告
    洛谷 P4137 Rmq Problem /mex 解题报告
    THUWC2019 摸鱼记
  • 原文地址:https://www.cnblogs.com/heyang78/p/3867279.html
Copyright © 2020-2023  润新知