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


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

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

  • 相关阅读:
    Libevent库学习笔记
    最大的k个数问题
    MongoDB之整库备份还原单表collection备份还原
    精通MATLAB混合编程
    AutoCAD 2016中文版从入门到精通(第2版)
    MATLAB科学计算范例实战速查宝典
    Android系统应用开发实战详解
    AutoCAD快捷命令速查大全
    TCP IP入门经典(第5版)
    STC8系列单片机开发指南:面向处理器、程序设计和操作系统的分析与应用
  • 原文地址:https://www.cnblogs.com/heyang78/p/3867279.html
Copyright © 2020-2023  润新知