Java8の関数と述語の違い
関数型と述語の両方の関数型インターフェースは、Javaで関数型プログラミングを実装するためにJava8で導入されました。
関数インターフェースは変換を行うために使用されます。1つの引数を受け入れて結果を生成できます。一方、述語は1つの引数のみを受け入れることができますが、ブール値のみを返すことができます。状態をテストするために使用されます。
Sr。いいえ。 | キー | 関数 | 述語 |
---|---|---|---|
1 | 基本 | 2つの型パラメーターを取ることができます。最初の1つは入力型の引数型を表し、2番目の型は戻り型を表します。 | 入力型または引数型を表す1つの型パラメーターを取ることができます。 |
2 | リターンタイプ | 任意のタイプの値を返すことができます。 | ブール値のみを返すことができます |
3 | メソッド | 抽象メソッドapply()があります。 | 抽象メソッドtest()があります。 |
4。 | ユースケース | 条件付きチェックを実装するために使用できます | 変換と戻り値に使用できます。 |
述語の例
public class Main { public static void main(String args[]) { List<Integer> numList = new ArrayList<>(); numList.add(5); numList.add(10); Predicate<Integer> pred = i -> i > 5; numList.stream().filter(pred).forEach(i -> System.out.println(i)); } }
機能の例
public class Main { public static void main(String args[]) { List<Integer> numList = new ArrayList<>(); numList.add(78); numList.add(10); Function<Integer, Integer> fun = i -> i / 2; numList.stream().map(fun).forEach(System.out::println); } }
-
Javaでのイテレータと列挙の違い
IteratorとEnumerationはどちらも、コレクションの要素をトラバースしてアクセスするためのカーソルです。どちらもコレクションフレームワークに属しています。列挙は、コレクションフレームワークのJDK1.2バージョンのJDK1.0およびIteratorで追加されました。 コレクション内の要素への読み取り専用アクセス権があるため、列挙型はコレクション内の構造を変更できません。次の方法があります: * hasMoreElements() * nextElement() 一方、イテレータはコレクション内の要素を読み取って削除できます。以下の方法があります- * hasNe
-
JavaでのArrayListとHashSetの違い
HashSetとArrayListはどちらも、Javaコレクションフレームワークの最も重要なクラスの一部です。 以下は、ArrayListとHashSetの重要な違いです。 Sr。いいえ。 キー ArrayList ハッシュセット 1 実装 ArrayListはリストインターフェイスの実装です。 一方、 HashSetは、セットインターフェイスの実装です。 2 内部実装 ArrayListは、その実装のために配列を内部的に実装します。 HashSetは、実装にHashmapを内部的に使用します。 3 要素の順序 ArrayListは、挿入順序、つまり