CONTENTS
- 第 1 回 Java の基礎知識 (1)
はじめに、Java のプログラム、名前の付け方、プログラムの実行、ソースファイルの文字コード、整数と浮動小数点数、文字、文字列、if 文、比較演算子と論理演算子、三項演算子、while 文による繰り返し、インクリメント演算子とデクリメント演算子、FizzBuzz 問題
- 第 2 回 Java の基礎知識 (2)
配列、for 文による繰り返し、拡張 for 文、繰り返しの制御、コマンドライン引数の取得、素数を求める、エラトステネスの篩、素因数分解、switch 文
- 第 3 回 メソッドの関数的な使い方
関数の基礎知識、関数の定義方法、局所変数と大域変数、局所変数の定義と有効範囲、可変長引数、関数の多重定義、データの探索、二分探索、素数を求める (2)、値呼びと参照呼び
- 第 4 回 再帰定義
再帰定義の基本、再帰定義のポイント、ユークリッドの互除法、末尾再帰と繰り返し、クイックソート、クイックソートのプログラム、クイックソートの欠点、バックトラック法と再帰定義、順列の生成
- 第 5 回 オブジェクト指向の基礎知識
オブジェクトとは?、クラスとインスタンス、メソッド、Java のクラス、Java のインスタンス、Java のメソッド、コンストラクタ、Point クラス、クラス変数、final 修飾子、クラスメソッド
- 第 6 回 継承
継承、単一継承、多重継承、継承の仕組み、単一継承の使い方、オーバーライド、クラス変数とクラスメソッドの継承、データ型の継承、継承とオーバーライドの制限、抽象クラスと抽象メソッド、キャストとポリモーフィズム
- 第 7 回 インターフェースと例外処理
多重継承とその問題点、Mix-in、インターフェース、インターフェースの使い方、Comparable インターフェース、クラスからインターフェースへのキャスト、例外処理、例外の捕捉、try 文の使い方、例外の送出、例外の定義、大域脱出、チェック例外と throws、finally 節
- 第 8 回 連結リスト
連結リストの構造、クラスの定義、連結リストの操作メソッド、作業用メソッド nth()、データの取得、データの挿入、データの削除、その他の操作メソッド、データの変換、ボクシングとアンボクシング、実行例
- 第 9 回 入れ子クラスとイテレータ
入れ子クラス、メンバ型の入れ子クラス、内部クラス、ローカルクラス、無名クラス、イテレータ、連結リストの改良
- 第 10 回 ファイル入出力
標準入出力の使い方、文字の入力、デフォルトの文字コード、文字の出力、行の入出力、バイナリファイルの入出力、文字エンコード方式の変更、ファイルを行単位で連結する
お気楽 Java プログラミング入門
初版 2009 年 4 月, 5 月
改訂 2016 年 11 月 12 日
CONTENTS
- 2016/11/19 ジェネリクス (前編)
ジェネリクスの基本、ジェネリクスでのクラス定義、ジェネリクスによる関数定義、Pair の作成、可変長配列 (ArrayList)、Pair を格納する、連結リスト (ジェネリクス版)、簡単な実行例
- 2016/11/20 ジェネリクス (後編)
型パラメータの制約、共変と反変、Java の配列は共変、ワイルドカード、共変と反変の指定、連結リストの改良、Comparable<E>、連想リスト
- 2016/11/27 ラムダ式
関数型インターフェース、ラムダ式とメソッド参照、レキシカルスコープ、ラムダ式と局所変数、forEach メソッド、クロージャ (closure)、ジェネレータ、ジェネレータをリセットする
- 2016/12/03 二分木
二分木の基本、節の定義、データの探索、データの挿入、データの削除、巡回 (traverse)、BinaryTree クラスの作成、実行例
- 2016/12/04 Optional<T>
Optional<T> の生成、Optional<T> のメソッド、Optional<T> の高階関数
- 2016/12/04 Stream
Stream の構成、Stream の生成、マッピング、フィルター、畳み込み、collect メソッド、並列処理、合計値を求める
- 2016/12/10 パッケージ
パッケージの基本的な使い方、Java Archive、JAR ファイルの使い方、import static
- 2016/12/10 immutable な連結リスト
不変データ構造、実装上の問題点、連結リストの仕様、プログラムリスト、簡単なテスト、修正 (2016/12/25)
- 2016/12/11 リストで遊ぼう
問題 (longer, butlast, group, subList, zip, unzip, assoc, partition, quickSort, mergeList, mergeSort, permutations, combinations, powerSet, sieve, masterMind)、解答、実行例
- 2016/12/11 遅延評価
遅延評価の実装、たらいまわし関数、遅延評価による高速化、クロージャによる遅延評価
- 2016/12/17 immutable な遅延ストリーム (前編)
遅延ストリームの構造、遅延ストリームの生成、無限ストリームの生成、遅延ストリームの操作メソッド、遅延ストリームの連結、高階関数、flatMap()、takeWhile() と dropWhile()
- 2016/12/18 immutable な遅延ストリーム (後編)
zipWith()、遅延ストリームの併合、集合演算、ハミングの問題、順列の生成、要素の選択、プログラムの作成、select() を使わない方法、組み合わせの生成、組 (Pair) を生成するストリーム、エラトステネスの篩、sieve() の高速化
- 2016/12/24 継続渡しスタイル
継続とは?、継続渡しスタイル (CPS) とは?、再帰呼び出しと継続渡しスタイル、二重再帰と継続渡しスタイル、CPS の便利な使い方、二分木の巡回を CPS で実装、二分木と遅延ストリーム、部分集合の判定
- 2016/12/31 連結リストとキュー
キューとは?、クラス Queue<E> の仕様、プログラムの作成、簡単なテスト、循環リスト、循環リストによるキューの実装、プログラムの作成、immutable なキュー、immuable なキューの仕様、プログラムの作成、実行例
- 2017/01/02 リストで遊ぼう (2)
最小値、最大値、合計値、平均値、標準偏差、パスカルの三角形、ランレングス符号、経路の探索 (深さ優先探索、幅優先探索、反復深化)、8 クイーン、農夫と山羊と狼とキャベツの問題、完全順列、集合の分割、整数の分割
- 2017/01/08 数で遊ぼう
素数、メルセンヌ素数、フィボナッチ数列の和、フィボナッチ素数、素因数分解、約数の個数、約数の総和、約数、完全数、友愛数
参考文献, URL
- Java(tm) Platform, Standard Edition 8, API仕様, (Oracle Technology Network)
- 井田昌之, 『はやわかり Java』, 共立出版, 1997
- David Flanagan (著), 冨福剛 (訳), 『Java プログラムクイックリファレンス 第2版』, オライリー・ジャパン, 2001
- Java入門 (全23回), ドットインストール
- Javaメモ, (ひしだまさん)
権利・免責事項など
『お気楽 Java プログラミング入門』と『続・お気楽 Java プログラミング入門』の著作権は筆者「広井誠 (Makoto Hiroi) 」が保持します。無断使用や無断転載は禁止いたします。『お気楽 Java プログラミング入門』と『続・お気楽 Java プログラミング入門』で作成したプログラムはフリーソフトウェアとします。ご自由にお使いください。プログラムの改造や配布もご自由にどうぞ。その際は、出典を明記してくださるようお願いいたします。
なお、これらのプログラムは無保証であり、使用したことにより生じた損害について、作者「広井誠 (Makoto Hiroi)」は一切の責任を負いません。また、これらのプログラムを販売することで利益を得るといった商行為は禁止いたします。
Copyright (C) 2009-2017 Makoto Hiroi
All rights reserved.
Java DE Puzzle
CONTENTS
はじめに
Java DE Puzzle は、パズルをメインに Java でプログラミングを楽しみましょう、というお気楽なページです。せっかく Java でプログラミングするのですから、パズルの解法プログラムだけではなく、パズルゲームや思考ゲームなど、いろいろなプログラム(アプレット)を作ってみたいと思います。もっとも、M.Hiroi は Java に関しては初心者にすぎません。たいしたことはできないでしょうが、よろしくお付き合いくださいませ。
権利・免責事項など
『Java DE Puzzle』で作成したプログラムはフリーソフトウェアとします。ご自由にお使いください。プログラムの改造や配布もご自由にどうぞ。その際は、出典を明記してくださるようお願いいたします。
なお、これらのプログラムは無保証であり、使用したことにより生じた損害について、作者「広井誠 (Makoto Hiroi)」は一切の責任を負いません。また、これらのプログラムを販売することで利益を得るといった商行為は禁止いたします。
Copyright (C) 2001-2003 Makoto Hiroi
All rights reserved.