Iterator

Iteratorインターフェースは、C#でいうIEnumerator。C++はstd::iteratorがそのままあるけど。
コレクションは、前回のiteratorメソッドでこれを取得できるようになっている。

Iterator (Java Platform SE 6)
Java文メモ(Hishidama's Java Statement Memo)

初期からあって、最初はC++的な使い方の形だった。

拡張ではないfor文で使える。nextで次に行くのでインクリメントは要らない。

ABC
DEF
GHI

できた。

Sample/java/Iterator/Iterator/src/Iterator at master · bg1bgst333/Sample · GitHub

AbstractList.iterator

イテレータを取得するには、iteratorメソッドを使う。

AbstractList (Java Platform SE 6)
Java Iteratorメモ(Hishidama's Java Iterator Memo)

6だと、AbstractListの方が先祖らしいので、こっちでやる。
(8だとArrayListのオーバーライドがドキュメントにあるけど。)

いったんabsListに入れてから、absList.iteratorIteratorインスタンスを取得。

ABC
DEF
GHI

出た。

Sample/java/AbstractList/iterator/src/AbstractList at master · bg1bgst333/Sample · GitHub

拡張for文

拡張for文(いわゆるforeach)で、配列やArrayListなどから、要素を取り出すことができる。

2. 拡張for文 | TECHSCORE(テックスコア)

従来のfor文、配列で拡張for文、ArrayListで拡張for文。

ABC
DEF
GHI
ABC
DEF
GHI
abc
def
ghi

取り出せている。

Sample/java/EnhancedforLoop/EnhancedforLoop/src/EnhancedforLoop at master · bg1bgst333/Sample · GitHub

Calendar

現在の日時はDateで取得するが、特定の日時を何かにセットしたりする時など、日時を加工したい場合は、Calendarを使う。

Calendar (Java Platform SE 6)
Java日付処理メモ(Hishidama's Java Date Memo)

Dateでも特定日時の設定などは出来るが、非推奨になっている。

Calendarは抽象クラスだが、Calendar.getInstanceでデフォルトのタイムゾーンインスタンスが取得できる。
(Dateはタイムゾーンがない。)

4/22

とはいえ、まずは日付を出力しただけ。

Sample/java/Calendar/Calendar/src/Calendar at master · bg1bgst333/Sample · GitHub

Date.after

Date.afterは、オブジェクト自身の日付というか時刻が、指定のDateオブジェクトより後かどうかを判定する。

Date (Java Platform SE 6)
Java日付処理メモ(Hishidama's Java Date Memo)

date1の5秒後に、date2を取得。
date2が、date1より後か判定。

Wed Apr 22 16:03:37 JST 2020
Wed Apr 22 16:03:42 JST 2020
date2 > date1

当然、date2はdate1より後である。

Sample/java/Date/after/src/Date at master · bg1bgst333/Sample · GitHub

Integer.parseInt

Integer.parseIntで、文字列をパースして整数値に変換する。

Integer (Java Platform SE 6)
Java型メモ(Hishidama's Java type Memo)

intの10と、Stringの"20"を変換した値を足すと、

ret = 30

となる。

Sample/java/Integer/parseInt/src/Integer at master · bg1bgst333/Sample · GitHub

CharSequence

Stringも、StringBufferも、CharSequenceインターフェースを実装しているため、メソッドの引数型をCharSequenceにしておいた方が幅広く受け取れる。

CharSequence (Java Platform SE 6)

Stringと、StringBufferで、それぞれfuncに渡してみる。

cs = ABCDE, cs.length() = 5
cs = FGHIJ, cs.length() = 5

どちらも受け取れて処理できた。

Sample/java/CharSequence/CharSequence/src/CharSequence at master · bg1bgst333/Sample · GitHub