タグ付けされた質問 「java-8」

このタグは、2014年3月18日にリリースされたJavaプラットフォームのバージョン8(内部番号1.8)であるJava 8に固有の質問に使用します。ほとんどの場合、javaタグも指定する必要があります。

25
MacにJava 8をインストールする方法
Java 8を必要とする最新のJavaFXでプログラミングしたいのですが、IntelliJ 13 CEとMac OS X 9 Mavericksを使用しています。OracleのJava 8インストーラーを実行したところ、ファイルは最終的に次のようになりました。 /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk しかし、以前のバージョンは /System/Library/Java/JavaFrameworks/jdk1.6.... 最新のインストーラーがこれ/Libraryを/System/Library(なぜ違いはない)の代わりに配置するのかわかりません。しかし/usr/libexec/java_home1.8が見つからないため、現在のJavaバージョンの設定方法について私が見つけたすべての投稿が機能しません。シンボリックリンクを追加して、/System/Library...パスに1.8が含まれているように見せましたが、役に立ちません。/usr/libexec/java_home -Vまだ古いJava 1.6しかリストされていません。 皮肉なことに、システム環境設定の「Java」コントロールパネルにはJava 1.8しか表示されません。 オラクルのインストーラーが実際にそれを配置しないのはなぜですか そして、どうすればこの問題を回避できますか?

17
::(ダブルコロン)Java 8の演算子
私はJava 8を探索していましたソースを調査していて、コードのこの特定の部分が非常に驚くべきであることに気付きました。 //defined in IntPipeline.java @Override public final OptionalInt reduce(IntBinaryOperator op) { return evaluate(ReduceOps.makeInt(op)); } @Override public final OptionalInt max() { return reduce(Math::max); //this is the gotcha line } //defined in Math.java public static int max(int a, int b) { return (a >= b) ? a : b; } あるMath::maxメソッドポインタのようなもの?通常のstaticメソッドはどのように変換されIntBinaryOperatorますか?
956 java  java-8 

21
Java 8 List <V>からMap <K、V>へ
Java 8のストリームとラムダを使用して、オブジェクトのリストをマップに変換したい。 これは私がJava 7以下でそれを書く方法です。 private Map&lt;String, Choice&gt; nameMap(List&lt;Choice&gt; choices) { final Map&lt;String, Choice&gt; hashMap = new HashMap&lt;&gt;(); for (final Choice choice : choices) { hashMap.put(choice.getName(), choice); } return hashMap; } Java 8とGuavaを使用してこれを簡単に達成できますが、Guavaなしでこれを行う方法を知りたいです。 グアバでは: private Map&lt;String, Choice&gt; nameMap(List&lt;Choice&gt; choices) { return Maps.uniqueIndex(choices, new Function&lt;Choice, String&gt;() { @Override public String apply(final Choice …



1
なぜarray [idx ++] + =“ a”は、idxをJava 8では1回、Java 9および10では2回増やすのですか?
挑戦のために、仲間のコードゴルファー は次のコードを書きました: import java.util.*; public class Main { public static void main(String[] args) { int size = 3; String[] array = new String[size]; Arrays.fill(array, ""); for(int i = 0; i &lt;= 100; ) { array[i++%size] += i + " "; } for(String element: array) { System.out.println(element); } } } このコードをJava …
751 java  java-8  javac  java-9  java-10 



15
使用するタイミング:Java 8+インターフェースのデフォルトメソッドと抽象メソッド
Java 8では、Default Methodsと呼ばれるインターフェースでメソッドのデフォルト実装が可能です。 私は(with )interface default methodではなく、そのようなをいつ使用するのか混乱しています。abstract classabstract method(s) では、デフォルトのメソッドとのインターフェースをいつ使用し、抽象クラス(抽象メソッドを含む)をいつ使用する必要があるのでしょうか。抽象クラスはそのシナリオでもまだ役に立ちますか?


6
可能な場合は常に並列ストリームを使用する必要がありますか?
Java 8とラムダを使用すると、コレクションをストリームとして反復するのが簡単で、並列ストリームを使用するのと同じくらい簡単です。docsの 2つの例、2番目の例はparallelStreamを使用しています。 myShapesCollection.stream() .filter(e -&gt; e.getColor() == Color.RED) .forEach(e -&gt; System.out.println(e.getName())); myShapesCollection.parallelStream() // &lt;-- This one uses parallel .filter(e -&gt; e.getColor() == Color.RED) .forEach(e -&gt; System.out.println(e.getName())); 順序を気にしない限り、パラレルを使用することは常に有益ですか?より多くのコアで作業を分割する方が速いと思う人もいるでしょう。 他の考慮事項はありますか?並列ストリームはいつ使用し、非並列ストリームはいつ使用する必要がありますか? (この質問は、並列ストリームをいつどのように使用するかについてのディスカッションをトリガーするためのものです。常にそれらを使用することは良い考えだと思うからではありません。)

6
述語で最初の要素を見つける
私はJava 8ラムダで遊んだばかりで、関数型言語で慣れ親しんでいることのいくつかを実装しようとしています。 たとえば、ほとんどの関数型言語には、シーケンス、または述語がである最初の要素を返すリストを操作する何らかの検索関数がありtrueます。Java 8でこれを達成するために私が見ることができる唯一の方法は、次のとおりです。 lst.stream() .filter(x -&gt; x &gt; 5) .findFirst() ただし、フィルターはリスト全体をスキャンするため、これは私には非効率的です。少なくとも私の理解では(これは間違っている可能性があります)。もっと良い方法はありますか?
504 java  java-8  java-stream 


8
java.time.LocalDateTimeとjava.util.Dateの間の変換
Java 8には、日付と時刻の完全に新しいAPIがあります。このAPIで最も有用なクラスの1つは、LocalDateTimeタイムゾーンに依存しない日時付きの値を保持するためのクラスです。 java.util.Dateこの目的でレガシークラスを使用しているコードはおそらく数百万行あります。そのため、古いコードと新しいコードをインターフェイスする場合、2つのコード間で変換する必要があります。これを達成するための直接的な方法はないように思われるので、どのようにそれを行うことができますか?

25
例外をスローするJava 8 Lambda関数?
Stringパラメータを持ち、を返すメソッドへの参照を作成する方法を知っていますint。 Function&lt;String, Integer&gt; ただし、関数が例外をスローする場合、これは機能しません。たとえば、次のように定義されているとします。 Integer myMethod(String s) throws IOException この参照をどのように定義しますか?
469 java  lambda  java-8 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.