JAVA入門

Similar documents
JAVA入門

Microsoft PowerPoint - Pro110111

Java プログラミング Ⅰ 11 回目多次元配列 2 次元配列 2 次元配列配列要素が直線上に並ぶ一次元配列に対して 平面上に並ぶ配列要素をもつ配列 直観的には 2 次元配列の準備配列変数の宣言は型と識別子を指定して次のように行う 型識別子 [ ][ ]; または 型 [ ][ ] 識別子 ; 配

JavaプログラミングⅠ

できるプログラマーを本気で育てる Java 超 Webプログラマーへの第 歩 第 3 回コレクションと例外処理 テクノロジックアート 瀬嘉秀

JavaプログラミングⅠ

Prog1_15th

JAVA とテンプレート

Microsoft PowerPoint ppt

第 3 回 Java 講座 今回の内容 今週の Java 講座はコレクション 拡張 for 文, ガベージコレクションについて扱う. 今週の Java 講座は一番内容が薄いも のになるだろう. コレクション コレクションとは大きさが決まっていない配列だと考えればよい. コレクションには List 先

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

Java講座

プログラミング入門1

Microsoft PowerPoint - prog03.ppt

情報処理Ⅰ

文字列操作と正規表現

17章 プログラムの提供

PowerPoint プレゼンテーション

Microsoft PowerPoint - chap10_OOP.ppt

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

プログラミング基礎I(再)

大容量情報検索論

Sort-of-List-Map(A)

Week 1 理解度確認クイズ解答 解説 問題 1 (4 2 点 =8 点 ) 以下の各問いに答えよ 問題 bit 版の Windows8.1 に Java をインストールする時 必要なパッケージはどれか 但し Java のコンパイルができる環境をインストールするものとする 1. jdk

<4D F736F F D2091E F196E291E889F090E C4816A82CC838C E646F6378>

GEC-Java

問題1 以下に示すプログラムは、次の処理をするプログラムである

スライド 1

デジタル表現論・第6回

メソッドのまとめ

ガイダンス

プログラミング入門1

プログラミング入門1

Microsoft PowerPoint - ●SWIM_ _INET掲載用.pptx

Prog1_6th

プログラミングA

GEC-Java

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

解答上の注意 1 解答は 解答 紙の問題番号に対応した解答欄にマークしなさい 2 選択肢は 問ごとに 意されています 問 1の選択肢は 問 2で使 しません 3 選択肢は量が多いため 探しやすさの観点よりグループ分けされています グループ分けに合わせて解答欄が区切られていますが 横 1 列で問題 1

プログラミング入門1

gengo1-8

JavaプログラミングⅠ

Javaによるアルゴリズムとデータ構造

< F2D B838A835882CC8CF68EAE2E6A7464>

Microsoft Word - keisankigairon.ch doc

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name

Prog1_10th

リファレンス,配列 例外処理

問題1 以下に示すプログラムは、次の処理をするプログラムである

プログラミング入門1

JavaプログラミングⅠ

JavaプログラミングⅠ

GEC-Java

PowerPoint プレゼンテーション

問題 01 以下は コンソールより年齢を入力させ その年齢にあった料金を表示するプログラムである 年齢ごとの金額は以下の通りである 年齢の範囲金額 0 歳以上 6 歳以下 120 円 7 歳以上 65 歳未満 200 円 65 歳以上無料 package j1.exam02; import java

Microsoft PowerPoint - lec06 [互換モード]

プログラミング入門1

CollectionsとLambda式


メディプロ1 Javaプログラミング補足資料.ppt

Javaの作成の前に

2

次に示す数値の並びを昇順にソートするものとする このソートでは配列の末尾側から操作を行っていく まず 末尾の数値 9 と 8 に着目する 昇順にソートするので この値を交換すると以下の数値の並びになる 次に末尾側から 2 番目と 3 番目の 1

DVIOUT-exer

PowerPoint プレゼンテーション

Microsoft PowerPoint - 説柔5_間勊+C_guide5ï¼›2015ã•’2015æŒ°æŁŽæš’å¯¾å¿œç¢ºèª“æ¸‹ã†¿ã•‚.pptx

(Microsoft PowerPoint - \223\306\217KJAVA\221\346\202R\224\ ppt)

PowerPoint プレゼンテーション

Make the Future Java FY13 PPT Template

PowerPoint プレゼンテーション

プログラミング入門1

7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 1

JavaプログラミングⅠ

ガイダンス

ガイダンス

Microsoft PowerPoint - prog04.ppt

K227 Java 2

< F2D834F838C A815B A CC>

基礎計算機演習 実習課題No6

cp-7. 配列

12.1 インターネットアドレス インターネットアドレス インターネットアドレス 32 ビットの長さを持つインターネットに接続されたマシンを識別するのに使う インターネットアドレスは ピリオドで区切られたトークンの並びで表現されることもある インターネットアドレス

Prog2_10th

3,, となって欲しいのだが 実際の出力結果を確認すると両方の配列とも 10, 2, 3,, となってしまっている この結果は代入後の配列 a と b は同じものになっていることを示している つまり 代入演算子 = によるの代入は全要素のコピーではなく 先をコピーする ため 代入後の a と b は


ガイダンス

Microsoft PowerPoint - prog08.ppt

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

全商情報処理検定プログラミング部門 サンプル問題1級解説

プログラミング入門1

JavaプログラミングⅠ

Microsoft PowerPoint - prog09.ppt

2

pp2018-pp9base

JavaプログラミングⅠ

Microsoft PowerPoint - prog09.ppt

JAVA入門

Prog1_3rd

PowerPoint プレゼンテーション

Transcription:

JAVA 入門 3 配列とコレクション

配列 1. 配列とは? 簡単 JAVA 説明 11 配列 同じ型の値を複数まとめて記憶する という機能を持つもの ということですが イメージとしては 同じ型の入れ物を複数用意する というイメージです int int int

簡単 JAVA 説明 11 配列の準備 2. 配列の準備 行うことは次の 2 つです 1 配列の宣言 2 配列要素の確保

簡単 JAVA 説明 11 配列の宣言 3. 1 配列の宣言構文型識別子 [] 配列変数名 = new 型名 []; 例 int test[]; test = new int[3]; int int int int

解説 1 簡単 JAVA 説明 11 配列の宣言 int test[]; は int 型の箱を用意するつもり という宣言です 次に test = new int[3]; は具体的に 3 個用意 するということです 実際にできる箱は test[0] test[1] test[2] と名前がつけられます int int int int test[0] test[0] test[0]

解説 2 簡単 JAVA 説明 11 配列の宣言 配列の番号は 0 からはじまりますので 最大の番号は 要素数 -1 です test[0] test[1] test[2] はありますが test[3] はありません

簡単 JAVA 説明 11 配列値代入 4. 配列に値の代入 構文 配列変数名 [ 添字 ] = 式 ; 例. int test[]; test new = int[3]; test[0] =10; test[1] =20; test[2] =30;

簡単 JAVA 説明 11 配列の利用 5. 配列の利用繰り返し文との併用配列の各要素に値代入の後 for 文を用いて 値出力 Sample1. 配列添え字が 0 からなので 出力の順番は i+1 とします i i+1 0 1 番目 1 2 番目 2 3 番目 3 4 番目 4 5 番目

簡単 JAVA 説明 11 配列の利用 class Sample01 { public static void main(string[] args) { // 整数の配列型の変数 test を宣言 int[] test; // 整数のサイズ 5 の配列を作成し 参照を test に割り当てる test = new int[5]; // 配列 test の各要素に点数を代入する test[0] = 80; test[1] = 60; test[2] = 22; test[3] = 50; test[4] = 75;

} 簡単 JAVA 説明 11 配列の利用 // ループ変数 i を 0 から (5-1) まで 1 ずつ変化させて // その間以下の処理を繰り返す for (int i = 0; i < 5; i++) { // 配列 test の i 番目の要素の値を表示する System.out.println((i + 1) + " 番目の人の点数は " + test[i] + " です "); } }

簡単 JAVA 説明 11 配列の利用 実行結果 1 番目の人の点数は 80 です 2 番目の人の点数は 60 です 3 番目の人の点数は 22 です 4 番目の人の点数は 50 です 5 番目の人の点数は 75 です

簡単 JAVA 説明 11 よくある間違い 配列のよくある間違い 次はどこが間違いでしょう? int test[]; test = new int[5]; test[5] = 5;

答え test[5] はありません 簡単 JAVA 説明 11 test[0] test[1] test[2] test[3] test[4] の 5 つが用意されます

簡単 JAVA 説明 11 配列の宣言 2 6. 配列の宣言 2 構文 型配列変数名 [] = new 型名 []; つまり int test[]; はひとつで test = new int[3]; int test[] = new int[3]; と書けます

簡単 JAVA 説明 11 配列の初期化 7. 配列の初期化 構文 配列配列変数名 []={ 値 1 値 2 }; 例 int test [] = { 10, 20, 30 } ; つまり 初期化においては 宣言 要素の確保 値代入が一度で記述さ れていることになる

簡単 JAVA 説明 11 変数への代入 8. 配列変数 ( 配列変数への代入 ) Sample5 におきまして int test1[]= new int[2]; test1[0]=10; test1[1]=20; int test2 [] ; test2 = test1 ; という代入構文では test1 の配列と test2 の配列は同じ配列を指し示します つまり test2 はあくまで test1 の配列を指ししめしているにすぎません (Sample6 参照 )

簡単 JAVA 説明 11 配列の応用 9. 配列の応用 配列の長さを知る構文 配列変数名.length 例 test.length =>Sample7

簡単 JAVA 説明 11 配列のソート 10. 応用例 配列のソート test[0]=22 test[1]=80 test[2]=57 test[3]=60 test[4]=50 の場合 test[0] と test[1] を比較 多きければ入れ替え temp=test[0]; test[0]= test[1]; から test[0]=80 test[1]=22 以下これを繰り返す (=>Sample9)

簡単 JAVA 説明 11 多次元配列 11. 多次元配列 (2 次元配列 ) 構文 型名配列変数名 [][]; 配列変数名 = new 型名 [ 要素数 ][ 要素数 ]; 例 int test[][]; test = new int [][];

簡単 JAVA 説明 11 多次元配列 2 次元のイメージ int test[][] = new int [4][5]; の場合 [0][0] [0][1] [0][2] [0][3] [0][4] [1][0] [1][1] [1][2] [1][3] [1][4] [2][0] [2][1] [2][2] [2][3] [2][4] [3][0] [3][1] [3][2] [3][3] [3][4]

簡単 JAVA 説明 11 多次元配列 初期化 int test [][] = { {10 20} {30 40} }; は int test[][] = new int[2][2]; test[0][0] =10; test[0][1] =20; test[1][0] =40; test[1][1] =40; と同じ意味

簡単 JAVA 説明 11 配列まとめ 1. 配列基本構文の理解その 1 型識別子 [] 配列変数名 = new 型名 []; その 2 型配列変数名 [] = new 型名 []; 2. 初期化 3. 利用 4. 応用 (length ソート ) 5. 代入 6. 多次元配列

簡単 JAVA 説明 12 コレクション ( リスト セット ) とマップ コレクション ( リスト セット ) やマップは オブジ ェクトの集合を扱うための仕組みです 次頁に一覧を与えます

カテゴリ List 系 Set 系 Map 系 クラス ArrayList LinkedList Vector HashSet TreeSet HashMap TreeMap 配列を扱います 配列を扱います 挿入 削除が高速です 配列を扱います 現在は推奨しません ( パフォーマンスが悪いため ) 値の重複を許さない順不同の要素集合を扱います 値の重複を許さないソートされたの要素集合を扱います キーと値の組からなる要素の集合を扱います キーと値の組からなる要素の集合を扱います キーでソートされています

簡単 JAVA 説明 12 ArrayList の例 import java.util.*; class ArrayListTest { public static void main(string[] args) { ArrayList list = new ArrayList(); list.add("aaa"); list.add("bbb"); list.add("ccc"); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } } }

簡単 JAVA 説明 12 ArrayList の使用 ArrayList は配列を扱う一般的なクラスです 以下のメソッドが用意されています List.add(o) - オブジェクト o を配列の末尾に追加する List.add(n, o) - オブジェクトを n で指定した場所に追加する List.get(n) - n 番目の要素を得る List.remove(n) - n 番目の要素を削除する List.set(n, o) - n 番目の要素をオブジェクト o で置き換える List.size() - 要素の個数を得る List.isEmpty() - 空かどうか調べる List.indexOf(o) - オブジェクト o と等しい要素のインデックスを探す List.contains(o) - オブジェクト o と等しい要素があるか調べる List.addAll(list2) - 配列の末尾に配列 list2 を追加する

簡単 JAVA 説明 12 LinkedList LinkedList も ArrayList と同じように使用することができます 挿入や削除を頻繁に行う場合は ArrayList よりも LinkedList の方が高速です ただし get() による参照は ArrayList の方が高速です

簡単 JAVA 説明 12 LinkedList の例 import java.util.*; class LinkedListTest { public static void main(string[] args) { LinkedList list = new LinkedList(); list.add("aaa"); list.add("bbb"); list.add("ccc"); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } } }

AAA BBB CCC LinkedList & ArrayList 実行結果

簡単 JAVA 説明 12 HashSet HashSet も配列を扱いますが 要素の重複が許されない 順序の保障が無い点が ArrayList や LinkedList と異なります 要素を参照する際には Iterator を用います

簡単 JAVA 説明 12 HashSet の例簡単 JAVA 説明 12 HashSet の例 import java.util.*; class HashSetTest { public static void main(string[] args) { HashSet set = new HashSet(); set.add("aaa"); set.add("bbb"); set.add("ccc"); set.add("aaa"); Iterator it = set.iterator(); while (it.hasnext()) { System.out.println(it.next()); } } }

簡単 JAVA 説明 12 HashSet の例 解説実行結果は下記のようになります AAA を 2 回 add() していますが 重複要素がひとつにマージされます 結果の順序は add() した順序に関係なくバラバラになります 実行結果 AAA CCC BBB

簡単 JAVA 説明 12 HashSet の使用 下記のメソッドが用意されています set.add(o) - オブジェクト o を配列の末尾に追加する set.clear() - 配列をクリアする set.contains(o) - オブジェクト o と等しい要素があるか調べる set.isempty() - 空かどうか調べる set.remove(o) - オブジェクト o にマッチする要素を削除する set.size() - 要素の個数を得る

簡単 JAVA 説明 12 TreeSet TreeSet も HashSet と同じように使用できます 要素が自動的にソートされる点が HashSet と異なります

簡単 JAVA 説明 12 TreeSet の例簡単 JAVA 説明 12 TreeSet の例 import java.util.*; class TreeSetTest { public static void main(string[] args) { TreeSet set = new TreeSet(); set.add("ccc"); set.add("aaa"); set.add("bbb"); set.add("aaa"); Iterator it = set.iterator(); while (it.hasnext()) { System.out.println(it.next()); } } }

TreeSet の実行結果 AAA BBB CCC

簡単 JAVA 説明 12 HashMap HashMap は 名前 ( キー ) と値の組み合わせを要素として持つ配列です

簡単 JAVA 説明 12 HashMap の例 import java.util.*; class HashMapTest { } public static void main(string[] args) { } HashMap map = new HashMap(); map.put("name", "Tanaka"); map.put("age", new Integer(26)); System.out.println("Name = " + map.get("name")); System.out.println("Age = " + map.get("age"));

Name = Tanaka Age = 26 HashMap の実行例

簡単 JAVA 説明 12 TreeMap TreeMap も HashMap と同じように使用できます 要素がキーによって自動的にソートされる点が HashMap と異なります

簡単 JAVA 説明 12 TreeMap の例 import java.util.*; class TreeMapTest { public static void main(string[] args) { TreeMap map = new TreeMap(); map.put("name", "Tanaka"); map.put("age", new Integer(26)); Iterator it = map.keyset().iterator(); while (it.hasnext()) { Object o = it.next(); System.out.println(o + " = " + map.get(o)); } } }

Age = 26 Name = Tanaka TreeMap の実行例