Java

Thread.getName

Thread.getNameで、スレッド名を取得する。Thread (Java Platform SE 6)スレッドIDの取得からスレッド名の取得に差し替え。こちらも。 CustomThread before. [1]:Thread.currentThread.getName() = main [2]:Thread.currentThread.getName() = main [3]:Thre…

Thread.currentThread

Thread.currentThreadで、現在のスレッドの参照を取得できる。Thread (Java Platform SE 6)スレッドの内側と、スレッドの外側で、スレッドIDが違うことを確認する。run内に2箇所。生成前、生成後、実行後の3箇所。 CustomThread before. [1]:Thread.currentT…

Thread.getId

Thread.getIdで、スレッドIDを取得できる。Thread (Java Platform SE 6)CustomThreadの生成、実行、CustomThreadのrun内で、スレッドIDを取得してみる。CustomThreadの中はこれだけ。MainClassは、ctの生成と、ct.startの実行時。 CustomThread before. [1]:…

Runnable

Runnableを匿名クラスで実装する場合もある。Runnable (Java Platform SE 6)こんな感じでrunの中にThread.sleep。 CustomThread before. CustomThread after. Thread.sleep before.の3秒後に、 Thread.sleep after.が出る。Sample/java/Runnable/Runnable/sr…

Thread

Threadを新しく生成して実行する方法はいくつかあるが、今回はThreadを継承した派生クラスを作る。Thread (Java Platform SE 6)runで3秒休止。こうすると、 CustomThread before. CustomThread after. Thread.sleep before最初こうだが、3秒経つと、 Thread.…

Thread.sleep

Thread.sleepで、スレッドを休止させる。Thread (Java Platform SE 6)カレントスレッドを休止させることで、ただただ処理を3秒止める。tryで囲まなきゃいけない。 Thread.sleep beforeと出て3秒経つと、 Thread.sleep afterと出る。Sample/java/Thread/sleep…

Stream.forEach

Stream.forEachを使って、各要素に対してactionを実行できる。Stream (Java Platform SE 8)各要素の名前の出力をforEachで繰り返している。 Taro Saburo Goroこうなる。Sample/java/Stream/forEach/src/Stream at master · bg1bgst333/Sample · GitHub

Stream.toArray(generator)

toArrayの引数に、配列生成のgenerator関数の参照やラムダ式を渡すことで、指定の型の配列で受け取れる。Stream (Java Platform SE 8)xに要素数が入るので、ラムダ式の矢印の先は要素数xの配列を生成する部分になる。 これだと、Stringの配列で受け取れる。 …

Stream.toArray

配列に変換するには、toArrayを使う。Stream (Java Platform SE 8)ただし、引数なしのバージョンでは、Objectの配列にしか直接変換できない。なので拡張for文の中でStringに変換してる。 実行すると、 Taro Saburo Goroこうなる。Sample/java/Stream/toArray…

Stream.map

Streamで絞り込まれた要素のどの値を返すかは、mapで指定する。Stream (Java Platform SE 8)こちらでも、170以上のボディの年齢を返す。とすると、 30 25 17となる。Sample/java/Stream/map/src/Stream at master · bg1bgst333/Sample · GitHub

Stream.filter

Streamで条件を絞り込むには、filterを使う。Stream (Java Platform SE 8)bodies.stream.filterで170以上を指定。 こちらはforの中でBodyにキャストして、各値を出力。 Taro, 30, 170, 60 Saburo, 25, 180, 70 Goro, 17, 175, 65このように出力できた。Sampl…

Stream

Stream APIにおける集約操作の対象となるのがStreamインターフェース。Stream (Java Platform SE 8)いったんStreamインターフェースに入れてみた。 条件は173を超えるに変更。 Saburo Goroこのようになった。Sample/java/Stream/Stream/src/Stream at master…

Collection.stream

Streamを取得する方法はいくつかあるが、手っ取り早いのはCollection.streamで取得すること。Collection (Java Platform SE 8)今回は、Listを継承元のCollectionに替える。当然Collectionからもstreamメソッドが呼べる。 条件も170未満に替えてみる。 Jiro S…

Stream API

Java 8からStream APIが導入された。 C#のLINQと同様に、データの流れを集約したり操作したりできる。Java Streamメモ(Hishidama's Java8 Stream Memo)LINQの項で扱った身長と体重に関する操作を、Java Stream APIでもやってみる。Body.csは、このようなBody…

Collection

ArrayListやLinkedListが継承するList、HashSetやTreeSetが継承するSetなど、コレクションはCollectionインターフェースを継承している。Collection (Java Platform SE 6)なので、Collectionにインスタンスを入れることが出来る。 aaa 1.2 10 abc 100 1.5 BB…

Set

HashSetも、TreeSetも、Setを継承しているので、SetにまとめられるSet (Java Platform SE 6)で、 1.2 ABC 10 10 20 30 aaa ccc bbb AAA BBB CCCHashSetの場合はソートされないが、TreeSetの場合はソートされる。Sample/java/Set/Set/src/Set at master · bg1…

TreeSet

TreeSetは、ツリー(木構造)によって保存場所を決める重複しない集合。TreeSet (Java Platform SE 6) HashSet と TreeSet はどう使う? - コレクション - Java 入門こちらはSortedSortが実装されているので、値でソートされる。 import java.util.TreeSet; //…

HashSet

HashSetは、ハッシュによって保存場所を決める重複しない集合。HashSet (Java Platform SE 6) HashSet と TreeSet はどう使う? - コレクション - Java 入門集合なので順番も保証されない。追加順はそれぞれにこうしているが、 1 abc 10.1 aaa ccc bbb取り出…

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のオーバーライドがドキュメントにあ…