小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

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

 WindySky 2008-09-28
代碼:
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,

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多