必要に応じて長い配列を使用

1083 ワード

**一、**Javaの配列を分析するのは一定長で、初期化宣言を経ても長さを変えることはできないので、実際の使用では非常に不便です.
**二、シーン**例えばクラスの学生の情報を統計します.私たちは1つのクラスにどれだけの学生がいるか(いつでも学生が入学したり、退学したり、転校したりする可能性がある)分からないので、すべての学生を収容するのに十分な配列が必要です.
でもどれくらいの大きさで十分な大きさですか?環境の変化に伴い、「十分大きい」が「十分小さい」とプログラミングされ、配列の最大容量を超える場合もありますが、どうすればいいのでしょうか.
実際には、配列を「婉曲」に拡張することで問題を解決することができます.コードは次のとおりです.
public static  T[] expandCapacity(T[] datas,int newLen){   
    //        
    newLen = newLen < 0 ? 0 :newLen;   
    //       ,         
    return Arrays.copyOf(datas,newLen);   
}   

上記のコードにはArrays配列ツールクラスのcopyOfメソッドを採用し,newLen長の新しい配列を生成し,元の値をコピーして,その後超長の要素に値を割り当てることができるようになった.
使用方法は次のとおりです.
public static void main(String[] args){   
    //        60      
    Stu[] classes = new Stu[60];   
    /*Classes   ........*/   
   
    //          80 ,       
    classes = expandCapacity(classes,80);   
    /*          20 */   
}   

このように処理することで,配列の長くなる問題を曲がりくねって解決した.
**三、提案**実際の開発過程において、確かに長くなるデータセットが必要であれば、配列も考慮範囲内であり、固定長さによって否定することはできない.実は、集合の長さ維持機能の原理はこれと似ています.