私はJava 8
の初心者です。今日は私の最初のlambda
という表現から始めました。私はString
配列を持っています。ソートの前後に値を表示したいのですが。私のコードは以下の通りですstream has already operated upon or closed
はに2回書いたので、forEach
を2度使用しています。並べ替え前と並べ替え後の値のストリーム
import java.util.stream.Stream;
class FirstLambda {
public static void main(String [] args){
String [] friends = new String [] {"C","A","B","D"};
Stream<String> friendsStream = Stream.of(friends);
System.out.println("My Friends:-");
printStream(friendsStream);
System.out.println("My Friends (after sort):- ");
Stream<String> sortedFriends = friendsStream.sorted((String m,String n) -> m.compareTo(n));
printStream(sortedFriends);
}
private static void printStream(Stream<String> stream) {
stream.forEach(s->System.out.println(s));
}
}
私の質問は、私の問題を解決する最も簡単な方法は何ですか?それは前とソート各Stream
一つだけの端末操作を持つことができますjava 8
Stream
(すなわち。ラムダ)
あなただけの理由で、並べ替えることがないラムダと ')(' friendsStream.sorted使用することができますデフォルトでは 'compareTo'メソッドを使用します。解決策は、2つの異なる「ストリーム」オブジェクトを使用することです。 – 4castle
私は同意します。しかし、ソート前とソート後に値をどのように表示するのですか? – Sridhar
@Sridhar *解決策は、2つの異なるStreamオブジェクトを使用することです。* –