配列
日本語 | 配列 |
英語 | array |
ふりがな | はいれつ |
フリガナ | ハイレツ |
型のひとつ。
あるひとつの型を連続して並べたもの。
並べられた各値を「要素」と呼ぶ。
要素の数は配列の作成時に決められ、後で変更することはできない。
値へのアクセスは添え字(「[]」のこと)とインデックスナンバーで行う。
サイズの取得はlengthフィールドで行う。
配列はクラスではないが「参照」を通してアクセスする。
クラスと同じくnewを使用してインスタンスを作り、その参照を変数に格納する。
また、インスタンスを作る際に要素数を決定する。
各値はインスタンス内にあるのであって、配列の参照内にあるのではない。
配列に似たものとして「コレクション」がある。
コレクションに比べて「固定長」「型が固定されている」等のデメリットがある反面、この「型が固定されている」のためにダウンキャストを必要しない。
不要なキャストをしないためにも、メソッドの引数もしくは戻り値として値を返す場合にはコレクションよりも配列を使用すべき。
配列からコレクションへはArraysクラスのasList()メソッドで、コレクションから配列へはCollectionインターフェイスのtoArray()メソッドで相互変換できるため、場面場面で配列とコレクションを選択して使用するのがよい。
あるひとつの型を連続して並べたもの。
並べられた各値を「要素」と呼ぶ。
要素の数は配列の作成時に決められ、後で変更することはできない。
値へのアクセスは添え字(「[]」のこと)とインデックスナンバーで行う。
サイズの取得はlengthフィールドで行う。
配列はクラスではないが「参照」を通してアクセスする。
クラスと同じくnewを使用してインスタンスを作り、その参照を変数に格納する。
また、インスタンスを作る際に要素数を決定する。
各値はインスタンス内にあるのであって、配列の参照内にあるのではない。
配列に似たものとして「コレクション」がある。
コレクションに比べて「固定長」「型が固定されている」等のデメリットがある反面、この「型が固定されている」のためにダウンキャストを必要しない。
不要なキャストをしないためにも、メソッドの引数もしくは戻り値として値を返す場合にはコレクションよりも配列を使用すべき。
配列からコレクションへはArraysクラスのasList()メソッドで、コレクションから配列へはCollectionインターフェイスのtoArray()メソッドで相互変換できるため、場面場面で配列とコレクションを選択して使用するのがよい。
// Sample.java
import java.util.Arrays;
import java.util.List;
import java.util.Iterator;
public class Sample
{
public static void main( String[] args )
{
// int型配列の参照を作ります。
int[] ints;
// この段階ではint型配列の「実体」(インスタンス)はまだ
// 作られていません。そこで要素数3のint型配列のインスタンスを
// 作り、その参照を渡します。
ints = new int[3];
// 各要素に値を格納します。
ints[0] = 100;
ints[1] = 200;
ints[2] = 300;
// 0番目の要素を取得します。
System.out.println( ints[0] );
// 100
// サイズはlengthフィールドで取得します。
System.out.println( ints.length );
// 3
// 配列は固定長なのでサイズは変わりません。
try
{
// 要素数は3ですが、末端のインデックスナンバーは2です。
System.out.println( ints[3] );
}
catch( ArrayIndexOutOfBoundsException e )
{
// 範囲を超えてアクセスするとArrayIndexOutOfBoundsExceptionが投げられます。
// 配列と異なるので注意。
e.printStackTrace();
// java.lang.ArrayIndexOutOfBoundsException: 3
// at Sample.main(Sample.java:29)
}
// 配列の要素は「配列のインスタンス」にあるわけですから、
// 要素数もインスタンスごとに決められることになります。
// ということは、参照先のインスタンスを切り替えることで
// 配列の参照としてはサイズは変更できます。
// 要素数5のint型配列のインスタンスを作成します。
ints = new int[5];
// これで、ints的には「配列の要素数が5」となりました。
// でも、最初に作成したインスタンスとは別なので、値は
// 当然残っていません。
System.out.println( ints[0] );
// 0
// 要素数3のInteger型配列を作ります。
Integer[] integers = new Integer[] { new Integer( 100 ), new Integer( 200 ), new Integer( 300 ) };
// このように、格納する要素が決まっている場合には、
// 「配列初期化子」を使用して、インスタンスの作成と同時に
// 初期化することができます。
// 要素の型がクラスなら、コレクションに変換できます。
List list = Arrays.asList( integers );
// だからイテレーターで配列にもアクセスできます。
for( Iterator iter = list.iterator(); iter.hasNext(); )
{
Integer integer = (Integer)iter.next();
System.out.print( integer + ", " );
}
System.out.println();
// 100, 200, 300,
// 配列は型が決まっているため、違う型の値を
// 代入することはできません。
// integers[0] = "あいうえお";
// 型の不一致: String から Integer には変換できません。
}
}
import java.util.Arrays;
import java.util.List;
import java.util.Iterator;
public class Sample
{
public static void main( String[] args )
{
// int型配列の参照を作ります。
int[] ints;
// この段階ではint型配列の「実体」(インスタンス)はまだ
// 作られていません。そこで要素数3のint型配列のインスタンスを
// 作り、その参照を渡します。
ints = new int[3];
// 各要素に値を格納します。
ints[0] = 100;
ints[1] = 200;
ints[2] = 300;
// 0番目の要素を取得します。
System.out.println( ints[0] );
// 100
// サイズはlengthフィールドで取得します。
System.out.println( ints.length );
// 3
// 配列は固定長なのでサイズは変わりません。
try
{
// 要素数は3ですが、末端のインデックスナンバーは2です。
System.out.println( ints[3] );
}
catch( ArrayIndexOutOfBoundsException e )
{
// 範囲を超えてアクセスするとArrayIndexOutOfBoundsExceptionが投げられます。
// 配列と異なるので注意。
e.printStackTrace();
// java.lang.ArrayIndexOutOfBoundsException: 3
// at Sample.main(Sample.java:29)
}
// 配列の要素は「配列のインスタンス」にあるわけですから、
// 要素数もインスタンスごとに決められることになります。
// ということは、参照先のインスタンスを切り替えることで
// 配列の参照としてはサイズは変更できます。
// 要素数5のint型配列のインスタンスを作成します。
ints = new int[5];
// これで、ints的には「配列の要素数が5」となりました。
// でも、最初に作成したインスタンスとは別なので、値は
// 当然残っていません。
System.out.println( ints[0] );
// 0
// 要素数3のInteger型配列を作ります。
Integer[] integers = new Integer[] { new Integer( 100 ), new Integer( 200 ), new Integer( 300 ) };
// このように、格納する要素が決まっている場合には、
// 「配列初期化子」を使用して、インスタンスの作成と同時に
// 初期化することができます。
// 要素の型がクラスなら、コレクションに変換できます。
List list = Arrays.asList( integers );
// だからイテレーターで配列にもアクセスできます。
for( Iterator iter = list.iterator(); iter.hasNext(); )
{
Integer integer = (Integer)iter.next();
System.out.print( integer + ", " );
}
System.out.println();
// 100, 200, 300,
// 配列は型が決まっているため、違う型の値を
// 代入することはできません。
// integers[0] = "あいうえお";
// 型の不一致: String から Integer には変換できません。
}
}
// Sample.java import java.util.Arrays; import java.util.List; import java.util.Iterator; public class Sample { public static void main( String[] args ) { // int型配列の参照を作ります。 int[] ints; // この段階ではint型配列の「実体」(インスタンス)はまだ // 作られていません。そこで要素数3のint型配列のインスタンスを // 作り、その参照を渡します。 ints = new int[3]; // 各要素に値を格納します。 ints[0] = 100; ints[1] = 200; ints[2] = 300; // 0番目の要素を取得します。 System.out.println( ints[0] ); // 100 // サイズはlengthフィールドで取得します。 System.out.println( ints.length ); // 3 // 配列は固定長なのでサイズは変わりません。 try { // 要素数は3ですが、末端のインデックスナンバーは2です。 System.out.println( ints[3] ); } catch( ArrayIndexOutOfBoundsException e ) { // 範囲を超えてアクセスするとArrayIndexOutOfBoundsExceptionが投げられます。 // 配列と異なるので注意。 e.printStackTrace(); // java.lang.ArrayIndexOutOfBoundsException: 3 // at Sample.main(Sample.java:29) } // 配列の要素は「配列のインスタンス」にあるわけですから、 // 要素数もインスタンスごとに決められることになります。 // ということは、参照先のインスタンスを切り替えることで // 配列の参照としてはサイズは変更できます。 // 要素数5のint型配列のインスタンスを作成します。 ints = new int[5]; // これで、ints的には「配列の要素数が5」となりました。 // でも、最初に作成したインスタンスとは別なので、値は // 当然残っていません。 System.out.println( ints[0] ); // 0 // 要素数3のInteger型配列を作ります。 Integer[] integers = new Integer[] { new Integer( 100 ), new Integer( 200 ), new Integer( 300 ) }; // このように、格納する要素が決まっている場合には、 // 「配列初期化子」を使用して、インスタンスの作成と同時に // 初期化することができます。 // 要素の型がクラスなら、コレクションに変換できます。 List list = Arrays.asList( integers ); // だからイテレーターで配列にもアクセスできます。 for( Iterator iter = list.iterator(); iter.hasNext(); ) { Integer integer = (Integer)iter.next(); System.out.print( integer + ", " ); } System.out.println(); // 100, 200, 300, // 配列は型が決まっているため、違う型の値を // 代入することはできません。 // integers[0] = "あいうえお"; // 型の不一致: String から Integer には変換できません。 } }
「みだし」に含まれているページ
「解説」に含まれているページ
- ,
- [
- [L
- args
- ArrayIndexOutOfBoundsException
- ArrayList
- Arrays
- ArrayStoreException
- BufferedInputStream
- byte
- ByteArrayInputStream
- ByteArrayOutputStream
- C++言語
- CharArrayReader
- CharArrayWriter
- Class
- Comparable
- C言語
- DOM
- Enumeration
- final変数
- for
- getBytes
- IANA
- InputStream
- InputStreamReader
- ISO-8859-1
- Iterable<T>
- Iterator
- length
- LinkedList
- null
- OutOfMemoryError
- OutputStream
- OutputStreamWriter
- PreparedStatement
- println
- PrintStream
- PushbackInputStream
- PushbackReader
- Reader
- ResultSet
- size
- StringBuffer
- StringBufferInputStream
- StringWriter
- UDP
- Unicode
- Vector
- Writer
- {
- アルゴリズム
- イテレーター
- インスタンス
- インデックスナンバー
- キュー
- クイックソート
- クラス
- コマンドライン引数
- コレクション
- スタック
- スタックトレース
- ストリーム
- ソート
- バイトストリーム
- バイト入力ストリーム
- バイト出力ストリーム
- バッファアンダーフロー
- バッファアンダーラン
- バッファオーバーフロー
- バッファオーバーラン
- バブルソート
- プリペアードステートメント
- プリミティブ型
- マージ
- マージソート
- リスト
- リフレクション
- ローカル変数
- 二次元配列
- 修正マージソート
- 列
- 初期値
- 可変長配列
- 型
- 変数
- 変数宣言
- 多次元配列
- 多重ループ
- 安定ソート
- 引数
- 拡張for
- 改行
- 文字コード
- 文字ストリーム
- 文字入力ストリーム
- 文字出力ストリーム
- 文字列
- 木構造
- 検索
- 添え字
- 行列
- 要素
- 配列
- 配列初期化子
- 降順
「サンプルプログラムとか」に含まれているページ
- ,
- ?
- [
- [L
- ArrayList
- Arrays
- ArrayStoreException
- ASCII
- BufferedInputStream
- BufferedOutputStream
- BufferedReader
- BufferedWriter
- ByteArrayInputStream
- ByteArrayOutputStream
- Comparable
- compareTo
- Cookie
- CP932
- DataInputStream
- DataOutputStream
- DOM
- DTD
- EUC
- EUC-JP
- FilterInputStream
- FilterOutputStream
- getBytes
- IANA
- InputStream
- InputStreamReader
- ISO-10646-UCS-2
- ISO-2022-JP
- ISO-8859-1
- length
- Node
- null
- ObjectInputStream
- ObjectOutputStream
- OutOfMemoryError
- OutputStreamWriter
- println
- PrintStream
- PushbackInputStream
- Reader
- SequenceInputStream
- Shift_JIS
- substring
- UCS-2
- UDP
- Unicode
- US-ASCII
- UTF-8
- Windows-31J
- Xerces
- XML
- {
- アルゴリズム
- インスタンス
- インデックスナンバー
- エイリアス
- クイックソート
- クッキー
- シフトJIS
- ソート
- ダンプ
- バッファアンダーフロー
- バッファアンダーラン
- バッファオーバーフロー
- バッファオーバーラン
- バブルソート
- ブロックします
- マージ
- マージソート
- リフレクション
- 二次元配列
- 修正マージソート
- 初期値
- 可変長配列
- 変数
- 変数宣言
- 多次元配列
- 安定ソート
- 拡張for
- 文字コード
- 文字化け
- 昇順
- 検索
- 標準入出力
- 添え字
- 行列
- 配列
- 配列初期化子
- 降順