<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    春風(fēng)博客

    春天里,百花香...

    導(dǎo)航

    <2008年6月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    293012345

    統(tǒng)計(jì)

    公告

    MAIL: junglesong@gmail.com
    MSN: junglesong_5@hotmail.com

    Locations of visitors to this page

    常用鏈接

    留言簿(11)

    隨筆分類(224)

    隨筆檔案(126)

    個(gè)人軟件下載

    我的其它博客

    我的鄰居們

    最新隨筆

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    泛型動(dòng)態(tài)數(shù)組類

    代碼:
    package com.sitinspring;

    import java.util.Arrays;

    /**
     * 泛型動(dòng)態(tài)數(shù)組類,以數(shù)組為數(shù)據(jù)容器實(shí)現(xiàn)動(dòng)態(tài)數(shù)組的功能
     * 
    @author: sitinspring(junglesong@gmail.com)
     * @date: 2008-6-23-下午10:08:09
     
    */

    public class DynamicArray<extends Object> {
        
    /** *//**
         * 用于存儲(chǔ)數(shù)據(jù)的數(shù)組
         
    */

        
    private T[] arr;

        
    /** *//**
         * 初始化大小
         
    */

        
    private static final int initSize = 10;

        
    /** *//**
         * 當(dāng)前元素個(gè)數(shù)
         
    */

        
    private int currItemsCount = 0;

        
    /** *//**
         * 構(gòu)造函數(shù)一,固定大小
         
    */

        @SuppressWarnings(
    "unchecked")
        
    public DynamicArray() {
            arr 
    = (T[])new Object[initSize]; 
        }

        
        
    /** *//**
         * 構(gòu)造函數(shù)二,指定大小
         
    */

        @SuppressWarnings(
    "unchecked")
        
    public DynamicArray(int len) {
            arr 
    = (T[])new Object[len]; 
        }


        
    /** *//**
         * 取得位置在i的元素
         
    */

        
    public T get(int i) {
            
    if (i < currItemsCount) {
                
    return arr[i];
            }


            
    throw new ArrayIndexOutOfBoundsException(i+"超過了數(shù)組界限");
        }


        
    /** *//**
         * 取得數(shù)組中已有元素的個(gè)數(shù)
         * 
    @return
         
    */

        
    public int size() {
            
    return currItemsCount;
        }


        
    /** *//**
         * 添加一個(gè)元素到數(shù)組
         * 
    @param number
         
    */

        @SuppressWarnings(
    "unchecked")
        
    public void add(T number) {
            
    if (currItemsCount >= arr.length) {
                T[] arrNew 
    =(T[]) new Object[arr.length * 2];
                
    for (int i = 0; i < arr.length; i++{
                    arrNew[i] 
    = arr[i];
                }


                arr 
    = arrNew;
            }


            arr[currItemsCount] 
    = number;
            currItemsCount
    ++;
        }


        
    /** *//**
         * 刪除位置在i的元素
         * 
    @param removeIndex
         
    */

        @SuppressWarnings(
    "unchecked")
        
    public void remove(int removeIndex) {
            
    if (removeIndex < arr.length) {
                
    if (removeIndex > currItemsCount) {
                    T[] arrNew 
    = (T[]) new Object[arr.length - 1];
                    
    for (int j = 0; j < arrNew.length; j++{
                        arrNew[j] 
    = arr[j];
                    }


                    arr 
    = arrNew;
                }
     else {
                    T[] arrNew 
    = (T[]) new Object[arr.length - 1];
                    
    for (int j = 0; j < removeIndex; j++{
                        arrNew[j] 
    = arr[j];
                    }


                    
    for (int j = removeIndex + 1; j < arr.length; j++{
                        arrNew[j 
    - 1= arr[j];
                    }

                    currItemsCount
    --;
                    arr 
    = arrNew;
                }

            }

        }


        
    /** *//**
         * 取得添值部分的數(shù)組
         * 
    @return
         
    */

        @SuppressWarnings(
    "unchecked")
        
    public T[] getArr() {
            T[] arrNew 
    = (T[])new Object[currItemsCount];

            
    for (int i = 0; i < arrNew.length; i++{
                arrNew[i] 
    = arr[i];
            }


            
    return arrNew;
        }

        
        
    /** *//**
         * 取得已排序的數(shù)組
         * 
    @return
         
    */

        
    public T[] getSortedArr(){
            T[] arrSorted 
    = getArr();
            Arrays.sort(arrSorted);
            
    return arrSorted;
        }



        
    /** *//**
         * 顯示添值部分的數(shù)組
         *
         
    */

        
    public void display() {
            System.out.print(
    "現(xiàn)有元素有:");
            
    for (int i = 0; i < currItemsCount; i++{
                System.out.print(arr[i] 
    + ",");
            }

            System.out.print(
    "\n");
        }


        
    /** *//**
         * 顯示數(shù)組的所有子元素,包括添值和未添值部分
         *
         
    */

        
    public void displayAll() {
            System.out.print(
    "所有元素有:");
            
    for (int i = 0; i < arr.length; i++{
                System.out.print(arr[i] 
    + ",");
            }

            System.out.print(
    "\n");
        }


        
    /** *//**
         * 程序入口
         * 
    @param args
         
    */

        
    public static void main(String[] args) {
            DynamicArray
    <Integer> dArray = new DynamicArray<Integer>(12);

            dArray.add(
    1);
            dArray.add(
    2);
            dArray.add(
    3);
            dArray.add(
    4);
            dArray.add(
    5);
            dArray.display();
            dArray.displayAll();

            dArray.add(
    6);
            dArray.add(
    7);
            dArray.add(
    8);
            dArray.add(
    9);
            dArray.add(
    10);
            dArray.display();
            dArray.displayAll();

            dArray.add(
    11);
            dArray.add(
    12);
            dArray.add(
    13);
            dArray.add(
    14);
            dArray.add(
    15);
            dArray.display();
            dArray.displayAll();

            dArray.remove(
    3);
            dArray.display();
            dArray.displayAll();

            dArray.remove(
    0);
            dArray.display();
            dArray.displayAll();

            dArray.remove(
    10);
            dArray.display();
            dArray.displayAll();

            dArray.add(
    2);        
            dArray.add(
    3);
            dArray.add(
    4);
            dArray.add(
    3);
            dArray.add(
    4);
            
            dArray.display();
            System.out.print(
    "已排序整數(shù)數(shù)組元素為:");
            Object[] arr 
    = dArray.getSortedArr();
            
    for (int i = 0; i < arr.length; i++{
                System.out.print(arr[i] 
    + ",");
            }

            System.out.print(
    "\n");
            
            DynamicArray
    <String> strArray = new DynamicArray<String>(10);
            
            strArray.add(
    "sitinspring");
            strArray.add(
    "dalian");
            strArray.add(
    "niaoling");
            strArray.add(
    "china");
            strArray.add(
    "asia");
            strArray.display();
            strArray.displayAll();
            
            strArray.add(
    "world");
            strArray.display();
            strArray.displayAll();
            
            strArray.remove(
    1);
            strArray.display();
            strArray.displayAll();
            
            System.out.print(
    "已排序字符串?dāng)?shù)組元素為:");
            Object[] arr2 
    = strArray.getSortedArr();
            
    for (int i = 0; i < arr2.length; i++{
                System.out.print(arr2[i] 
    + ",");
            }

            System.out.print(
    "\n");
        }

    }

    輸出:
    現(xiàn)有元素有:1,2,3,4,5,
    所有元素有:
    1,2,3,4,5,null,null,null,null,null,null,null,
    現(xiàn)有元素有:
    1,2,3,4,5,6,7,8,9,10,
    所有元素有:
    1,2,3,4,5,6,7,8,9,10,null,null,
    現(xiàn)有元素有:
    1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
    所有元素有:
    1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,null,null,null,null,null,null,null,null,null,
    現(xiàn)有元素有:
    1,2,3,5,6,7,8,9,10,11,12,13,14,15,
    所有元素有:
    1,2,3,5,6,7,8,9,10,11,12,13,14,15,null,null,null,null,null,null,null,null,null,
    現(xiàn)有元素有:
    2,3,5,6,7,8,9,10,11,12,13,14,15,
    所有元素有:
    2,3,5,6,7,8,9,10,11,12,13,14,15,null,null,null,null,null,null,null,null,null,
    現(xiàn)有元素有:
    2,3,5,6,7,8,9,10,11,12,14,15,
    所有元素有:
    2,3,5,6,7,8,9,10,11,12,14,15,null,null,null,null,null,null,null,null,null,
    現(xiàn)有元素有:
    2,3,5,6,7,8,9,10,11,12,14,15,2,3,4,3,4,
    已排序整數(shù)數(shù)組元素為:
    2,2,3,3,3,4,4,5,6,7,8,9,10,11,12,14,15,
    現(xiàn)有元素有:sitinspring,dalian,niaoling,china,asia,
    所有元素有:sitinspring,dalian,niaoling,china,asia,
    null,null,null,null,null,
    現(xiàn)有元素有:sitinspring,dalian,niaoling,china,asia,world,
    所有元素有:sitinspring,dalian,niaoling,china,asia,world,
    null,null,null,null,
    現(xiàn)有元素有:sitinspring,niaoling,china,asia,world,
    所有元素有:sitinspring,niaoling,china,asia,world,
    null,null,null,null,
    已排序字符串?dāng)?shù)組元素為:asia,china,niaoling,sitinspring,world,

    posted on 2008-06-25 17:08 sitinspring 閱讀(1330) 評(píng)論(0)  編輯  收藏 所屬分類: Java基礎(chǔ)算法數(shù)據(jù)結(jié)構(gòu)

    sitinspring(http://www.tkk7.com)原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處.
    主站蜘蛛池模板: 中文在线日本免费永久18近| 亚洲日韩国产欧美一区二区三区| 国产成人亚洲综合无| 中国在线观看免费国语版| 亚洲欧洲日本精品| 波多野结衣中文字幕免费视频 | 亚洲毛片基地4455ww| av无码久久久久不卡免费网站| 亚洲综合无码一区二区三区| 亚洲一区二区免费视频| 亚洲国产午夜电影在线入口| 国产va免费精品观看精品| 色天使亚洲综合在线观看| 免费毛片在线播放| 午夜免费国产体验区免费的| 国产成人亚洲综合| 人人玩人人添人人澡免费| 久久久久久亚洲精品成人| 我们的2018在线观看免费高清| 亚洲一本一道一区二区三区| 日本免费人成黄页在线观看视频| 国产av无码专区亚洲av毛片搜| AV在线亚洲男人的天堂| 免费无码又爽又刺激一高潮| 亚洲色图在线播放| 成人特黄a级毛片免费视频| 粉色视频在线观看www免费| 久久精品亚洲福利| 2015日韩永久免费视频播放 | 国内成人精品亚洲日本语音| 免费人成视网站在线观看不卡| baoyu777永久免费视频| 亚洲第一页在线播放| 色吊丝最新永久免费观看网站 | 特级毛片A级毛片免费播放| 国产亚洲成av人片在线观看| h视频在线观看免费网站| 四虎精品免费永久免费视频| 亚洲精品私拍国产福利在线| 真实乱视频国产免费观看| 成人网站免费大全日韩国产|