Java

List

ArrayListやLinkedListは、Listインターフェースを実装しているので、Listで共通化できる。List (Java Platform SE 6)ListにArrayListを入れても、LinkedListを入れても、addは使えるし、Listを使った出力メソッドで出力できる。 1 1.2 A 2 2.4 B a b c A B …

LinkedList

ArrayListが配列のような使い方を中心とするなら、LinkedListはキューのような使い方を中心とする。LinkedList (Java Platform SE 6) 待ち行列としての利用 - コレクション(LinkedList) - Java入門非ジェネリクス版、ジェネリクス版と一応両方。 offerでキュ…

Function

Functionは、引数を取り、値を返す既定の関数型インターフェース。Function (Java Platform SE 8) Java関数型インターフェースメモ(Hishidama's Java8 Functional Interface Memo)以前のように渡された値を2乗する。s.applyに引数を渡してそのまま返す。ラム…

Predicate

Predicateは、引数を取り、真偽値を返す既定の関数型インターフェース。Predicate (Java Platform SE 8) Java関数型インターフェースメモ(Hishidama's Java8 Functional Interface Memo)渡された値が0以上かどうかを判定する。引数をs.testに渡すと、boolean…

Consumer

Consumerは、引数はあるが、戻り値がない既定の関数型インターフェース。Consumer (Java Platform SE 8) Java関数型インターフェースメモ(Hishidama's Java8 Functional Interface Memo)何かをConsumer(消費)するという意味。s.acceptに引数をそのまま渡す。…

Supplier

Supplierは、引数無しで、戻り値のみがある既定の関数型インターフェース。Supplier (Java Platform SE 8) Java関数型インターフェースメモ(Hishidama's Java8 Functional Interface Memo)何かをSupplier(供給)するという意味合い。s.getで指定された関数型…

ラムダ式

引数に関数型インターフェースのインスタンスを新たに定義して渡す場合は、ラムダ式にすることができる。Java関数型インターフェースメモ(Hishidama's Java8 Functional Interface Memo) Javaラムダ式メモ(Hishidama's Java8 Lambda Expression Memo)インタ…

@FunctionalInterface

アノテーションの@FunctionalInterfaceを付けるとエラーチェックしてくれる。Java関数型インターフェースメモ(Hishidama's Java8 Functional Interface Memo)interfaceの定義としておかしいこれは、そもそもinterfaceの定義としておかしいので、アノテーショ…

関数型インターフェース

関数型インターフェースは、メソッドの参照や後述するラムダ式を入れることができるインターフェース。 C#だとデリゲートにあたるのかな。Java関数型インターフェースメモ(Hishidama's Java8 Functional Interface Memo) 関数型インターフェースとは何か?(J…

Iterable

Iterableインターフェースは、C#でいうIEnumerable。Iterable (Java Platform SE 6) Java Iteratorメモ(Hishidama's Java Iterator Memo)コレクションは、これを実装している。Iterableなので拡張for文でループさせる。 ABC DEF GHIできた。Sample/java/Iter…

Iterator

Iteratorインターフェースは、C#でいうIEnumerator。C++はstd::iteratorがそのままあるけど。 コレクションは、前回のiteratorメソッドでこれを取得できるようになっている。Iterator (Java Platform SE 6) Java文メモ(Hishidama's Java Statement Memo)初期…

AbstractList.iterator

イテレータを取得するには、iteratorメソッドを使う。AbstractList (Java Platform SE 6) Java Iteratorメモ(Hishidama's Java Iterator Memo)6だと、AbstractListの方が先祖らしいので、こっちでやる。 (8だとArrayListのオーバーライドがドキュメントにあ…

拡張for文

拡張for文(いわゆるforeach)で、配列やArrayListなどから、要素を取り出すことができる。2. 拡張for文 | TECHSCORE(テックスコア)従来のfor文、配列で拡張for文、ArrayListで拡張for文。 ABC DEF GHI ABC DEF GHI abc def ghi取り出せている。Sample/java/En…

Calendar

現在の日時はDateで取得するが、特定の日時を何かにセットしたりする時など、日時を加工したい場合は、Calendarを使う。Calendar (Java Platform SE 6) Java日付処理メモ(Hishidama's Java Date Memo)Dateでも特定日時の設定などは出来るが、非推奨になって…

Date.after

Date.afterは、オブジェクト自身の日付というか時刻が、指定のDateオブジェクトより後かどうかを判定する。Date (Java Platform SE 6) Java日付処理メモ(Hishidama's Java Date Memo)date1の5秒後に、date2を取得。 date2が、date1より後か判定。 Wed Apr 22…

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 · b…

CharSequence

Stringも、StringBufferも、CharSequenceインターフェースを実装しているため、メソッドの引数型をCharSequenceにしておいた方が幅広く受け取れる。CharSequence (Java Platform SE 6)Stringと、StringBufferで、それぞれfuncに渡してみる。 cs = ABCDE, cs.…

StringBuilder

JDK1.5から、StringBuilderが追加された。 使い方は、StringBufferとほぼ変わらない。 違いがあるとすると、スレッドセーフでない分高速であるということぐらいらしい。StringBuffer (Java Platform SE 6) Java文字列メモ(Hishidama's Java String Memo)とい…

StringBuffer

Stringオブジェクトは、変更不可の文字列を保持するものなので、本来は変更や連結などをする場合は、StringBufferを使うべき。StringBuffer (Java Platform SE 6) Java文字列メモ(Hishidama's Java String Memo) 【Javaの基本】なぜStringBufferを使うのか -…

String.length

String.lengthで、文字列の長さを取得できる。String (Java Platform SE 6) Java文字列メモ(Hishidama's Java String Memo)16ビットなので、基本的には半角英数でも日本語でも、文字数を返すが、サロゲートが含まれている場合は、charの個数を返す。実行する…

Cloneable.clone

これまでのcloneの実装だと、浅いコピーになるため、正しい深いコピーの実装をする。Cloneable (Java Platform SE 6) Javaのcloneメソッドの正しい実装方法 - Qiita厳密には、Cloneableにはcloneメソッドが含まれない模様。 (なのでタイトルはおかしいが、実…

Cloneable

Cloneableは、複製可能を示すインターフェース。Cloneable (Java Platform SE 6) Javaクローンメモ(Hishidama's Java Cloneable Memo)ちょっと書き方が正しくなかったので修正。Cloneableが無い状態で、super.clone(Object.clone)を呼ぶと、CloneNotSupporte…

Object.clone

Object.cloneは、オブジェクトのコピーを作成して返す。Object (Java Platform SE 6) オブジェクトのクローン - Java の基本 - Java 入門派生クラスで、Cloneableインターフェースのcloneを実装して、オーバーライドしないといけない。 // カスタムオブジェ…

Object.toString

toStringは、すべてのオブジェクトに用意されているもので、オブジェクトの文字列表現を返す。Object (Java Platform SE 7) Java クラスにtoStringメソッドを追加する意味とサンプル | ITSakuraデフォルトのものを使ってもいいが、どうやってオーバーライド…

Object

Javaでは、すべてのクラスが、Objectクラスを継承している。Object (Java Platform SE 6)独自にCustomObjectクラスを定義する。中身は何も定義しなくても、Objectを継承する。 MainClass.javaでは、StringはObjectを継承してるので、アップキャスト問題なし…

Graphics.drawString

GraphicsクラスのdrawStringで文字列を描画する。Graphics (Java Platform SE 6)いくつか描画してみる。3つの文字列を、変数を経由したり、ずらしたりしながら描画。3つの文字列を描画描画できた。Sample/java/Graphics/drawString/src/Graphics at master ·…

Graphics

Graphicsクラスは、画像処理に関するさまざまな情報や処理を持つ抽象基底クラス。Graphics (Java Platform SE 6)これまでも、drawLineなどのメソッドを使っていたが、Graphicsオブジェクトgの内部のインスタンスはどうなっているか確認してみる。今回もアプ…

Applet

Javaアプレットは、Webブラウザ上で実行できるJavaプログラムである。 Appletクラスを継承して作る。Applet (Java Platform SE 6)Eclipseの場合だと、普通にJavaプロジェクトを作成し、MainAppletクラスを追加。Appletクラスを継承し、paintをオーバーライド…

Container.paint

画面の描画処理は、paintメソッドで行う。 これは、Frameクラスの親のWindowクラスの親のContainerクラスのメソッドである。Container (Java Platform SE 6) GUIアプリケーション(AWT その2) AWTとSwingのペイント(paint)の仕組みFrameを継承したクラスMain…

Window.addWindowListener

以前、WindowListenerの回で、ウィンドウの閉じるなどのイベント処理は、WindowListenerオブジェクトをaddWindowListenerでFrameオブジェクトに追加することで実現できた。Window (Java Platform SE 6)FrameはWindowの派生クラスであり、addWindowListenerは…