Java配列、これを見て十分です

Javaのジェネリックの前に、唯一のアレイは、オブジェクト・ストレージのタイプを指定するために使用することができ、中にオートボクシングそれを一般的な自動包装機構の出現の前に、ある機構が前に発生し、唯一の配列は、基本的なデータタイプを格納するために使用することができます、重要なの中で、Javaのコンポーネントの配列。

また、アレイは、最も効率的な記憶およびランダムアクセスシーケンスは、オブジェクト方法であるが、残念ながら、配列の長さが固定されている - 例えば、指定された長さが6である場合、あなたは6つの要素を格納することができる作成されましたあなたが最初の7つの要素を入れたいとき、それは行うことはできません。

コンピュータのハードウェア機能のアップグレードと、開発者は、より喜んでは、配列の代わりに、ArrayListを使用するデータのセットを格納します。内部のArrayListは、アレイによって達成されるが、配列と比較して、その容量が自動的に拡張することができますが、機能の多くは、配列を見つけていないがあります。あなたは、パフォーマンスの問題を改善するために使用アレイない限り、配列を使用していない配列を使用することはできません。

01、配列を作成

レッツは、Javaの配列の下で明確な定義を与える-格納するために使用される配列、固定長同じタイプの要素を。

例としては、次のとおりです:

int[] ints = new int[3];
ints[0] = 1;
ints[1] = 2;
ints[2] = 3;

int ints1[] = new int[3];

int[] ints2 = { 1, 2, 3 };
复制代码

int[] ints比較するとint ints1[]宣言好ましく、int ints1[]スタイルは、C / C ++プログラマのしやすさはすぐにJava言語を理解することができ、C / C ++言語から来ています。

2つの方法の配列を作成する方法は、1つのことであり、存在するnewことによって、次に、長さを指定し、キーワードarray[index] = value割当ての方法、別の方法があることによって{value1, value2, ...}作成する直接割り当ての方法と同時に。

(日付文字列のプレースホルダ)は次のように最も一般的な用途は、次のとおりです。

private static String[] parsePatterns = { "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", "yyyy/MM/dd",
			"yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM", "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM" };
复制代码

02、慎重な長さ

直接できリストとマップを使用する場合size()、実際のコンテナサイズ(長さ)方法を得ます。アレイはまた、キー持っているlengthサイズ(長さ)を取得するのが、意味が異なります。length番組は、アレイの大きさは、要素の実際の大きさではなく、アレイを収容します。

たとえば、次のように:

int[] ints = new int[3];
ints[0] = 1;
ints[1] = 2;

System.out.println(ints.length); // 输出3
复制代码

が実際の長さは、2つのint値であるが、ints.lengthその長さは注意3--あります。

03、配列ツール

Javaの設計者は、特別なツールの排他的な配列を設計し、善意として記述することができます- 、java.util.Arrays私たちを紹介するいくつかの一般的な方法があります。

1)ソート()

sort()配列をソートするために使用される方法は、この方法は、同等のインタフェースを達成するために、配列の要素を必要とします。要素が文字列のソートや基本データ型でない場合は、Comparableインタフェースを実装するためのイニシアチブ取る必要があります(基本データ型を文字列と、それ自体はComparableインタフェースを実現しています)。

例としては、次のとおりです:

String[] strs = {"沉", "默","王", "二"};

Arrays.sort(strs);
System.out.println(Arrays.toString(strs));
// 输出[二, 沉, 王, 默]
复制代码

sort()ソート方法の結果は、[第二、シェン、王、モリブデン]です。

2)binarySearch()

binarySearch()バイナリサーチのアレイを実行するために使用される方法は、(リターン指標値が配置され、見つからない場合、戻り-1)、この方法は、最初の注文の前に呼び出す必要があります。

例としては、次のとおりです:

String[] strs = {"沉", "默","王", "二"};

Arrays.sort(strs);
System.out.println(Arrays.binarySearch(strs, "二"));
// 排序后的结果为[二, 沉, 王, 默]
// 二分查找的结果范围0
复制代码

以来、sort()ソートの結果は、方法[ジ、SHEN、王はMo]、それはArrays.binarySearch(strs, "二")インデックス値0を返します。

3)asList()

asList()配列リスト(ArrayListに)、以下のソースコードに変換するための方法:

public static <T> List<T> asList(T... a) {
    return new ArrayList<>(a);
}
复制代码

配列リストのそれに変換するには?リストtoArray()方法。ニュアンスの実施例を参照して定義されたもたらすための異なる方法のアレイが経験することができます。

String[] strs = {"沉", "默","王", "二"};

List<String> list = Arrays.asList(strs);
System.out.println(list);
// 输出[沉, 默, 王, 二]

String[] strs1 = new String[list.size()];
System.out.println(Arrays.toString(list.toArray(strs1)));
// 输出 [沉, 默, 王, 二]

String[] strs2 = new String[5];
System.out.println(Arrays.toString(list.toArray(strs2)));
// 输出 [沉, 默, 王, 二, null]

String[] strs3 = new String[1];
System.out.println(Arrays.toString(list.toArray(strs3)));
// 输出 [沉, 默, 王, 二]

String[] strs4 = {};
System.out.println(Arrays.toString(list.toArray(strs4)));
// 输出 [沉, 默, 王, 二]
复制代码

宣言された配列のサイズは、リストのサイズを超えた場合、toArray()メソッドの後に配列が席を埋めるために変換されます(null)。

4)のtoString()

toString()アレイ出力文字列フォーマットのための方法([value1, value2, value3, ...]フォーマット)、以下のソースコード:

public static String toString(Object[] a) {
    if (a == null)
        return "null";

    int iMax = a.length - 1;
    if (iMax == -1)
        return "[]";

    StringBuilder b = new StringBuilder();
    b.append('[');
    for (int i = 0; ; i++) {
        b.append(String.valueOf(a[i]));
        if (i == iMax)
            return b.append(']').toString();
        b.append(", ");
    }
}
复制代码

前:JavaのString、これを見ては十分です

次へ:Javaのコレクションクラスの初心者

マイクロチャンネルサーチは「王を沈黙した後、公開番号、返信の注意」の無料動画「500G高品質な教育ビデオ(取得済み分類を)。

おすすめ

転載: juejin.im/post/5dc52714518825139c52d59f