イントロダクション
For文の学習を始めたのは良いけれど、配列の知識が必要なので急遽配列の勉強をします。
主に、配列はたくさんのデータを扱うときに使用します。以下に例を示します。
配列のイメージ
プログラムで物事を処理するときには、大体目に見えないものば仮です。具体的には、「オブジェクト」と呼ばれているものがそうです。
イメージする事でしかこの存在を具体化できません。※自分にはそう思っていますが、もしかしたらできる人がいるかも?
そんなわけで、筆者の配列、変数に対するイメージは、ズバリ段ボールです。
変数にデータをセット、同じように変数の連結されたもの「配列」という認識です。
配列は、各データ型の配列があります。具体的には下のようなものです。
int[] intArray;
double[] doubleArray;
long[] longArray;
byte[] byteArray;
MyClass[] myClassArray;
筆者の場合は、それらの配列はいろんな型がハコになって並んでいるイメージです。下の画像はINT型の配列です。このINT型がDOUBLEだったり、MyClassだったりする、違いがあるだけです。
<配列とリテラルに関して>
配列を使用するとき
下のようなものを扱うときによく使用します。
- CSVファイル(人口統計の地域ごとに集計したデータなど)の読み込み
- DBから取得したデータの読み込み
そのほか、やはり沢山のデータを扱うときに使用します。この配列をクラスとして使用しているのがListインターフェース・クラスです。
<データの取得サンプルコード>
DBに接続してSQLを実行した結果を取得しています。IDをリストで取得しています。
Properties prop = new Properties();
prop.put("ユーザーのキー", "ユーザー名");
prop.put("パスワードのキー", "パスワード");
Connection con = DriverManager.getConnection("DBのURL", prop);
ResultSet rs = con.executeQuery("SELECT * FROM MYTABLE");
List<ID> list = rs.get(0);
<Listインターフェースのサンプル動画>
余談ですが、このListインターフェース・クラスは、良く「インターフェース」と呼ばれています。しかし、サーバー同士のデータ通信でも「インターフェース」という言葉を使います。結論から言うと「インターフェース」はいろんな場面でいろんな意味で使われるので「オブジェクト指向」という言葉と同じようにカオス化しやすい言葉です。注意しましょう。
そして、このListインタフェースは実装されているクラスが2つあり、ArrayListとLinkedListというクラスがあります。
それぞれ、特徴がありますが、よく使われるのがArrayListで、可変長配列の実装になります。※Javaを作った人たちが作成したプログラムということです。
Introduction
Start a studying For statement. But we need knowledge of array. That’s why we will study array.
配列とは…
連結した変数の箱です。※自分のイメージです。
4の5の言わずに、サンプルコードを見て見ましょう
変数には、それぞれの型がありました。配列も同様です。
int型の配列、double型の配列、String型の配列。。。沢山あります。
public class TestA {
public static void main(String[] rags) {
// 普通の変数
int num = 1;
double d = 1.2;
String moji = "これは文字です";
// 配列の変数
int[] numArr = {1, 2, 3};
double[] dArr = {0.1, 0.2, 0.3};
String[] strArr = new String[]{"a", "b", "c"};
// int型の配列表示
System.out.println(“numArr[0]=“ + numArr[0]);
System.out.println(“numArr[1]=“ + numArr[1]);
System.out.println(“numArr[2]=“ + numArr[2]);
// double型の配列表示
System.out.println(“dArr[0]=“ + dArr[0]);
System.out.println(“dArr[1]=“ + dArr[1]);
System.out.println(“dArr[2]=“ + dArr[2]);
// String型の配列表示
System.out.println(“strArr[0]=“ + strArr[0]);
System.out.println(“strArr[1]=“ + strArr[1]);
System.out.println(“strArr[2]=“ + strArr[2]);
}
}
配列の宣言と初期化
配列ではない変数は「int 変数名」の様に宣言します。
// 変数の宣言
int num;
// 変数の初期化
int num1 = 10;
配列の変数に関しては「int[] 変数名」の様に宣言します。
// 変数の宣言
int[] numArray;
// 変数の初期化①配列の中身を初期化する
int[] numArray1 = new int {0, 1, 2};
// 変数の初期化②配列の要素数(セットできるデータの数)を指定する
int[] numArray = new int[2]
使い方は上記のサンプルを参考にしてください。
Array is ...
Linked Box. ※On my mind
Without hesitation. See a sample code. Look at upper sample.
we use single variable like this ”int ‘Variable’”.
Array is like this “int[[] ‘Valiable’”
<問題>
配列を以下の様に表示するプログラムを作成してください。
====== 例(Sample) ======
配列[0]=1
配列[1]=2
配列[2]=3
配列[3]=4
配列[4]=5
ループ文と併用する
DBからデータを取得した場合の処理の例。
※DBから取得したデータは全部文字列(String)型とする、取得したデータは複数あるので配列になっていることが多い。
これは、使用しているAPIの仕様によります。
// DBクラスでSQLをセットして、実行する。
String[] strArr =DB.setQuery("select * from myTable").execute();
for (int i = 0; i < strArr.length(); i++) {
// 取得したデータを表示する。
System.out.println("取得したデータ:" + strArr[i]);
}
実際に動かしてみる
実行したときの動画です。
余計な音が入っています、
こちらも、余計な音が入っています。