JavaでカスタムUnaryOperatorを実装する方法
java.util.function.UnaryOperatorインターフェースは、ラムダ式の代入先として使用できる関数型インターフェースです。1つのオペランドに対する操作を表し、その結果は入力と同じ型になります。このインターフェースを実装することで、独自のカスタムUnaryOperatorを作成することが可能です。
また、Listインターフェースが提供するreplaceAll()メソッドは、UnaryOperatorオブジェクトを引数として受け取ります。このメソッドを呼び出すと、リスト内のすべての要素に対して指定された操作が適用され、既存の値が処理結果の値に置き換えられます。
以下の例では、UnaryOperatorインターフェースを実装したクラスからカスタム単項演算子のオブジェクトを作成し、replaceAll()メソッドの引数として渡しています。
サンプルコード
import java.util.ArrayList;
import java.util.function.UnaryOperator;
class Op implements UnaryOperator<String> {
public String apply(String str) {
return str.toUpperCase();
}
}
public class Test {
public static void main(String[] args) throws CloneNotSupportedException {
ArrayList<String> list = new ArrayList<>();
list.add("Java");
list.add("JavaScript");
list.add("CoffeeScript");
list.add("HBase");
list.add("OpenNLP");
System.out.println("Contents of the list: "+list);
list.replaceAll(new Op());
System.out.println("Contents of the list after replace operation: \n"+list);
}
}
実行結果
Contents of the list: [Java, JavaScript, CoffeeScript, HBase, OpenNLP] Contents of the list after replace operation: [JAVA, JAVASCRIPT, COFFEESCRIPT, HBASE, OPENNLP]
このように、UnaryOperatorインターフェースを実装したクラスでは、apply()メソッドをオーバーライドして任意の変換処理を定義します。上記の例では文字列を大文字に変換していますが、apply()メソッドの中身を変更すれば、さまざまな一括変換処理に応用できます。
-
JavaでArrayListをループ処理する5つの方法を徹底解説
このチュートリアルでは、JavaでArrayListを反復処理(イテレーション)する5つの異なる方法を紹介します。Java 8以降では、forEachメソッドやIteratorクラスを使ってArrayListをループ処理することも可能です。 ArrayListをループ処理する主な方法 ArrayListをループ処理する方法は、主に以下の5つがあります。 従来のfor文(クラシックForループ) 拡張for文 Iterator(イテレータ) while文 forEachメソッド(Java 8) まずは、各ループの例で使用するArrayListを作成しましょう。 import java.uti
-
JavaでList(リスト)を配列に変換する方法|toArray()とArrays.asList()の使い方
Javaの開発において、List(リスト)と配列(Array)の相互変換は非常によく使われる基本的な操作です。 Listを配列に変換する最も簡単かつ推奨される方法は、.toArray()メソッドを使うことです。逆に、配列をListに戻したい場合は、Arrays.asList()メソッドを使用します。 以下では、文字列(String)のListや整数(Integer)のListを、それぞれ対応する配列に変換する具体例を紹介します。 String型のListを配列に変換する import java.util.ArrayList; import java.util.List; public cl