工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Java

Java配列完全マスター:宣言、生成、処理、Arraysユーティリティ

配列とは

Javaの配列は、同型要素の固定サイズ順次コレクションを格納するデータ構造です。個別変数number0, number1...代わりにnumbers[0], numbers[1]...で管理できます。

配列変数の宣言

dataType[] arrayRefVar;  // 推奨スタイル
// または
dataType arrayRefVar[];  // C/C++由来、非推奨

例

double[] myList;   // 推奨
double myList[];   // 動作するが非推奨

配列の生成

new演算子で生成

arrayRefVar = new dataType[arraySize];

2動作:配列オブジェクト生成、参照を変数に代入。

宣言+生成+初期化を1文で

dataType[] arrayRefVar = new dataType[arraySize];

初期値リストで生成

dataType[] arrayRefVar = {value0, value1, ..., valueK};

インデックスアクセス

0ベース:0 〜 arrayRefVar.length-1

例

double[] myList = new double[10];  // 10要素、インデックス0-9

配列処理:for / 拡張for

全要素同型・サイズ既知のため、forまたはforeachが適しています。

完全例:生成・初期化・合計・最大値

public class TestArray {
  public static void main(String[] args) {
    double[] myList = {1.9, 2.9, 3.4, 3.5};
    
    // 全要素出力
    for (int i = 0; i < myList.length; i++)
      System.out.println(myList[i] + " ");
    
    // 合計
    double total = 0;
    for (int i = 0; i < myList.length; i++)
      total += myList[i];
    System.out.println("Total is " + total);
    
    // 最大値
    double max = myList[0];
    for (int i = 1; i < myList.length; i++)
      if (myList[i] > max) max = myList[i];
    System.out.println("Max is " + max);
  }
}
1.9 2.9 3.4 3.5
Total is 11.7
Max is 3.5

拡張forループ(foreach)

JDK 1.5導入。インデックス変数なしで順次走査。

for (double element : myList) {
  System.out.println(element);
}

配列のメソッド渡し

プリミティブと同様に配列もメソッド引数として渡せます(参照渡し)。

public static void printArray(int[] array) {
  for (int i = 0; i < array.length; i++)
    System.out.print(array[i] + " ");
}
printArray(new int[]{3, 1, 2, 6, 4, 2});

配列を返すメソッド

public static int[] reverse(int[] list) {
  int[] result = new int[list.length];
  for (int i = 0, j = result.length - 1; i < list.length; i++, j--)
    result[j] = list[i];
  return result;
}

java.util.Arrays クラス

ソート、検索、比較、充填などの静的ユーティリティメソッドを提供。すべてプリミティブ型にオーバーロード済み。

#メソッド説明
1binarySearch(Object[] a, Object key)ソート済み配列を二分探索。見つかればインデックス、なければ(-挿入位置-1)
2equals(long[] a, long[] a2)2配列が同長・全要素等価ならtrue。全プリミティブ型対応
3fill(int[] a, int val)全要素を指定値で充填。全プリミティブ型対応
4sort(Object[] a)自然順序で昇順ソート。全プリミティブ型対応

多次元配列

配列の配列として実装:int[][] matrix = new int[3][4];。ジャグ配列(行ごとに長さ異なる)も可能。

次のトピック

配列の基礎を押さえたら、コレクションフレームワーク(ArrayList, HashMap等)へ進むのが定石です。

Java

  1. C# 配列をマスターする:宣言、初期化、操作
  2. C++配列を徹底解説:宣言、初期化、ポインタ活用テクニック
  3. C++動的配列の確保をマスター:コード例付き実践ガイド
  4. Java演算子をマスター:種類、構文、実践例
  5. Java配列コピー技法:包括的ガイド
  6. Javaインターフェース完全ガイド:概念、実装、ベストプラクティス
  7. Javaのtry-with-resourcesをマスターする:自動リソース管理の仕組みと活用法
  8. Javaアノテーション完全ガイド:種類、配置場所、実践例
  9. Java配列チュートリアル:宣言、生成、初期化の完全ガイド
  10. Javaオブジェクト配列の作成:ステップバイステップガイド
  11. Javaでバブルソートをマスター:わかりやすい例とステップバイステップ解説