Javaの配列インデックスの問題

/ *
二つのマイナーな問題の一般的な配列操作:
ArrayIndexOutOfBoundsExceptionが:異常な範囲外の配列のインデックス
の理由:あなたが存在しないインデックスを参照してください。

NullPointerExceptionが:NULLポインタ異常な
理由:もはやヒープメモリのアレイを指します。そして、あなたはまた、配列名の要素にアクセスするために使用します。

役割:全てのシーンを総括終わる独自の例外で問題。記録上の出会いの後。
現象、原因、解決策。
* /
クラスArrayDemo6 {
パブリック静的無効メイン(文字列[] args){
//定義アレイ
INT [] = {1,2,3} ARR;

//System.out.println(arr[3]);

//参照定数のタイプ:一定の空気ヌル
ARR = NULL;
のSystem.out.println(ARR [0]);
}
}
アレイを有する2つの共通のマイナーな問題:
アレイは、オカレンスの数に数回チェックされます。
需要:検索配列要素(インデックスは配列内の指定された要素の最初の発生を見つけるために)

分析:
A:アレイ、及び静的初期化を定義します。
B:機能の実現を記述
反復が順次配列の各要素を取得し、既知のデータを比較し、
それらが等しい場合、現在のインデックス値が返されます。
* /
クラスArrayTest5 {
パブリック静的無効メイン(文字列[] args){
//配列の定義、及び静的初期化
INT [] = {200,250,38,888,444 ARR};

//要件:私は最初のアレイ250で検索しますインデックスの発生
INTインデックス= getIndex(ARR、250);
のSystem.out.println( "250インデックス配列では初めてである:" +指数);

int型INDEX2 = getIndex2(ARR、250);
システム。 out.printlnを( "アレイ250が最初に現れるのインデックスは:" + INDEX2);

INT = Index3 getIndex2(ARR 2500);
のSystem.out.println(「アレイ2500内のインデックスが最初の発生であります:「+ Index3);
}

/ *
需要:の指定された配列最初の発生のインデックスデータ検索
2つの別個の
戻り値の型:int
パラメータリスト:INT [] ARR、int値
* /
getIndex int型のpublic static(INTを[] ARR、INT値){
//配列の各要素を求める逐次反復、および既知のデータとを比較する
(INT X = 0; X <arr.lengthあり; x ++){
IF(ARR [X] ==値){
//等しい場合、現在のインデックス値を返します。
X-リターン;
}
}

//現在のコードは、小さな問題がある
?、私は、配列内に存在しない探していた場合、それは見つけることができない、見つけることができませんされて//データを、あなたは、対応するリターンを行うことができます
。//したがって、エラー。

私たちは注意する必要がありますので、//は限り審査員として、それは、偽である可能性があります。


//データが、我々は一般的に、負の数、及びリターン-1を返すことができない場合は
リターン-1;
}

パブリックstatic int型getIndex2(INT [] ARR、INT値){
//インデックス定義
INTインデックス= -1 ;

//インデックスが値を変更しなければならない
ため(INT X = 0; X <arr.length; X ++){
IF(ARR [X] ==値){
インデックス= X;
ブレーク;
}
}

//インデックス返す
リターン指数;
}
}

おすすめ

転載: www.cnblogs.com/lszbk/p/12318597.html