Java8で追加されたOptionalとStreamについていくつか実装について迷った点を質問させていただきます。
###Optional.ofの使い所
以下のようなnullを許容しないフィールドxxxを受け取る関数を実装しようと考えます。Optional.ofはnullを許容しないものでありますが、そうであれば、そのOptionalインスタンスについてorElse等を使える状況を作り出す必要はないと思います。Optional.ofを使ってOptionalを受け取る利点はあるのでしょうか。
java
1final T xxx; 2 3T getXxx() { 4 return Objects.requireNonNull(xxx); 5} 6 7 8Optional<T> getXxxAsOptional() { 9 return Optional.of(xxx); 10}
###Collectionの駆逐
Java8になって、for文からforEachへの移行が行われました。その際、Collectionではstream()を利用してStreamへの変換を行うわけですが、毎回そうする必要はあるのかと疑問に思いました。そこで、Streamをフィールドとして持たせようと考えました。これについて正しいのかどうか教えていただきたいです。
以下について、再代入せずに済む方法もあれば教えていただきたいです。
java
1List<T> list = new ArrayList(); 2Stream<T> stream = Stream.empty(); 3 4void addToList(T t) { 5 list.add(t); 6} 7 8void addToStream(T t) { 9 stream = Stream.concat(stream, Stream.of(t)); 10}
###Streamが空であるかどうかの判定
Streamが空であるかどうかを以下のように実装するのは正しいのでしょうか(1はcount()が不定なため良くないのかとは思いますが)。正しい方法を教えてください。
java
1Stream stream; 2 3boolean isEmpty1() { 4 return stream.count() <= 0; 5} 6 7boolean isEmpty2() { 8 return stream.findAny().isPresent(); 9}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/10 03:03