いずれかのプログラミング言語、アレイは、最も重要かつ一般的に使用されるデータ構造の一つであるが、アレイの異なる言語構造と処理は同じではありません。
Java.util.Arrays Javaクラスを容易に操作することができる配列を提供し、それはすべてのメソッドが静的で提供します。ここではいくつかされている配列は、最も一般的にいくつかの方法を使用していました。
1.アレイをソート
アレイユーティリティクラス提供ソート方法、ソート機能を完了するためのコードのみ一行。
文字列に2列
アレイが提供toStringメソッドの配列を直接配列要素の観察を容易にすることができる文字列に変換することができます。
@ 出典:公共バイト数[回] // ソートの列に配列 パッケージBaseCode; インポートjava.util.Arrays; パブリック クラスj4_1028_11 { 公共の 静的な 無効メイン(文字列[] args)を{ int型 [] FF 11,3,25,71,9 {= }; System.out.print(の "FF未分類アレイ:" ); のための(INT N-:FF) System.out.print(N-の + "" ); は、Arrays.sort (FF); // 配列をソート ( "ポスト\ n個の配列FFのソート:" System.out.printf ); のため(int型 N-:FF) System.out.printの(N + "" ); // 文字列に配列 System.out.printf( "文字列に\ n個のFFアレイ:" + Arrays.toStringの(FF)); } }
業績
未ソート配列FF:11 3 25 71 9 ソートされた配列のFF後:3 9 11 25 71 列FFに配列:[ 3、9、11、25、71 ]
3.あるいは配列要素で充填
提供アレイフィル方法指定(指定又はアレイ位置)アレイの充填または交換価値を。
前記アレイは、同じかどうかが判定されます
Arrays.equalsが同じ場合は、アレイ内の2つの要素を比較することができます。
@ ソース:バイト[] // メソッドとequalsメソッド記入 パッケージBaseCodeを、 インポートjava.util.Arrays; パブリック クラスj4_1028_12 { 公共の 静的な 無効メイン(文字列[] args)を{ int型 [] = FF 新しい新しい int型 [ 5 ]; Arrays.fill(FF、 5。); System.out.printの( "アレイのすべての要素が充填されている5。" ;) のための(INT N-:FF) System.out.print(N-の + "" ); // 第三の要素7に最初の要素からアレイを充填 // 最初の要素を含む、第三の要素フリー Arrays.fill(FF、1,3,7 ); System.out.printの( "\ nの充填配列の指定された位置7:。" ); のための(INT :N- FF) System.out.printの(N + "" ); INT [] = NN 新しい新しい INT [5 ]; Arrays.fill(NN、 5。); System.out.printf( "\同じNN NFF:" + をArrays.equals(FF、NN)は); } }
業績
5が充填された配列のすべての要素:5 5 5 5 5 アレイは、指定された位置が充填されている7:5 7。 7。 5 5 同NN FF:falseに
5.コピー配列
copyOfアレイクラス()メソッドcopyRangeの()メソッドは、配列の複製で実施することができます。
copyOf(ARR、int型newlength)
Newlength新しいパラメータ、すなわちからARR配列、配列の長さである第0がデフォルトで満たさバックの長さよりも大きいARR newlength場合、newlengthが終了するまで、開始位置。
copyOfRange(ARR、int型formIndex、INTたtoIndex)
FormIndexパラメータは、ARRのアレイ素子から取り出される終了位置toIndexのはように、開始位置が、位置の要素を含まないようなデフォルトで充填されたバックの長さを超えたtoIndex ARRとして、。
@ 出典:公共バイト数[回] // copyOfRangeでcopyOfを使用して配列をコピー パッケージBaseCode; インポートjava.util.Arrays; パブリック クラスj4_1028_10 { 公共の 静的な 無効メイン(文字列[] args)を{ int型 [ 】FF = {1,3,5,7,9 }; // 0から始まる長さにArrays.copyOf複製配列、 INT [] = newff1 Arrays.copyOf(FF ,. 3 ); int型 [] =配列、newff2を。 copyOf(FF ,. 6 ); System.out.printの( "copyOfが使用:\ nはアレイnewff1:" ); のための(INT N-:newff1) System.out.printの(N-+ "" ); System.out.printf( "\ nはアレイnewff2:" ); のために(INT N-:newff2) System.out.print(のN + "" ); // Arrays.copyOfRange第2のパラメータは、開始され位置 // 三番目のパラメータである終了位置 INT [] = newff3 Arrays.copyOfRange(FF ,. 1 ,. 4 ); int型 [] = newff4 Arrays.copyOfRange(FF ,. 1 ,. 7 ); System.out.printf(「\ ":\ nはアレイnewff3:ncopyOfRangeを使用); のための(INT N-:newff3) System.out.print(N-の +" " ); System.out.printf("\ nは数组newff4:" ); 以下のための(int型N:newff4) System.out.print(N +」 " ); } }
業績
使用copyOf: 配列newff1:1 。3 。5 アレイnewff2:1 3。 5。 7。 9。 0 copyOfRange使用: 配列newff3:3 。5 。7 配列newff4:3 。5 。7 。9 0 0
お問い合わせの6要素
BinarySearchメソッド配列クラスが表示されます要素の位置を照会することができ、インデックスの要素を返します。検索しbinarySearchを使用する前に、ただし、あなたは、ソートするソート使用する必要があります。配列は同じ要素を複数回ある場合と、検索結果が不確実です。
binarySearch(ARR、オブジェクトキー)
アレイ内のキー場合、インデックス検索値が返され、挿入ポイントの-1さもなければまたは負の値。
いわゆる挿入ポイント値は、配列のインデックスの最初の重要な要素よりも大きい場合、インデックスは1ベースです。
binarySearch(ARR、int型fromIndexの、int型endIndexに、オブジェクトキー)。
fromIndexの:指定した範囲の開始インデックスで(あって)
たtoIndex:指定された範囲のインデックスの終わり(含まれていません)
その検索結果は、次の4つのケースに分けることができます。
-
検索キーは、要素の(配列)、リターン以上の範囲と範囲内ではありません - (たtoIndex + 1)。
-
検索キーは、範囲内にない、および要素の(配列)、リターン未満 - (たfromIndex + 1)。
-
検索キーの範囲ではなく、配列の要素ではない、いずれかによってカウントを開始し、インデックスが負の値の挿入ポイントを返します。
-
検索キーの範囲、及びアレイ要素のカウントは検索インデックス値を返し、0から開始されます。
あなたは、することができます以下のコメントを参照して、コードをサンプリングし、
@ ソース:パブリックバイト数[回] // 配列要素を見つける:binarySearch使用方法 パッケージBaseCodeと、 インポートjava.util.Arrays、 パブリック クラスj4_1028_13 { 公共 静的 ボイドメイン(文字列[]引数){ int型 ] [ 1,3,5,7,9 = {のFn }; は、Arrays.sort(FN); //は先の第1の並べ替えを見つける INT CX1 = Arrays.binarySearch(FNを,. 5); // 2を返し、キーワードが見つかった、インデックス0から // 6見つからない、戻り値は負の挿入ポイントがある、 // 配列要素のインデックスで6挿入ポイントは7であり、 // 1つのカウントは4である開始インデックスから要素7、すべての戻り-4 int型 CX2 = Arrays.binarySearch(FN ,. 6); //見つからない、戻り-4、7は、インデックスポイントに挿入されている4。 INT CX3 = Arrays.binarySearch(FN ,. 4); // 見つからない、5はインデックスポイントに挿入され、-3を返し3 のSystem.out.println(「なし指定された例を見て: " ); のSystem.out.println( "アレイ、FNの内容: "+ ; Arrays.toString(FNの)) System.out.printf( [5]"が見つかります。%D%のn-CX1 = " 、 CX1); System.out.printf( "[6]が見つかりました[4]:%のD = CX2、CX3%=%N-D" 、CX2、CX3); // 指定された場所での配列要素を見つけ、パラメータ( 3)である[3,5]配列要素を含む @ 検索キー内の範囲内ではなく、要素の範囲(アレイ)、リターンより大きい- (たtoIndex + 1)。 INT CX4 = Arrays.binarySearch(FN、1,3,10 ); // 検索キー内の範囲内ではなく、要素の(配列)、リターン未満- (+たfromIndex 1); INT CX5 = Arrays.binarySearch(FN 1、3、); // の範囲内で、この検索キーはなく、配列の要素、カウント挿入ポイントから開始する負の屈折率の戻り のint CX6 = Arrays.binarySearch(FN、L、3,4 ); // この検索キー範囲、及び配列要素が0からカウントを開始し、検索インデックス値戻り INT CX7 = Arrays.binarySearch(FN、L、3,5 ) のSystem.out.println(「-------- ----------------- " ); のSystem.out.println( "パラメータは、ルック例を指定します" ); のSystem.out.println( "最初のケース:CX4 = "+ CX4) のSystem.out.println( "第二の場合:CX5 = "+ CX5) のSystem.out.println( "第三の場合:CX6 =「+ CX6); System.out.printlnは( "第4のケース:CX7 =" + CX7)。 } }
業績
指定されていない例を見て: 配列の内容、FN:[ 1、3、5、7、9 ] [ 5 ]実測値を:CX1 = 2 [ 6 ] [ 4。見出さ]:CX2 = - 。4、CX3 = - 3 - ----------------------- パラメータは例を見て指定する: 最初のケース:CX4 = - 。4 秒の場合:CX5 = - 2 第三のケース:CX6 = - 3。 第4のケース:CX7 = 2