イテレータをスプリッテレータ(Spliterator)に変換するJavaプログラム
Javaでは、IteratorをSpliteratorに変換することで、ストリームAPIや並列処理との連携が容易になります。本記事では、Spliteratorsクラスを利用してイテレータをスプリッテレータに変換する具体的な方法を、サンプルコードとともに解説します。
サンプルコード
import java.util.*;
public class Demo{
public static <T> Spliterator<T> getspiliter(Iterator<T> iterator){
return Spliterators.spliteratorUnknownSize(iterator, 0);
}
public static void main(String[] args){
Iterator<Integer> my_iter = Arrays.asList(56, 78, 99, 32, 100, 234).iterator();
Spliterator<Integer> my_spliter = getspiliter(my_iter);
System.out.println("The values in the spliterator are : ");
my_spliter.forEachRemaining(System.out::println);
}
}実行結果
The values in the spliterator are : 56 78 99 32 100 234
コードの解説
まず、Demoというクラスの中に、getspiliterというジェネリックメソッドを定義しています。このメソッドは、引数として受け取ったイテレータをスプリッテレータに変換して返す役割を担います。
変換には、java.util.SpliteratorsクラスのspliteratorUnknownSizeメソッドを使用しています。このメソッドは、要素数が事前に分からないイテレータからスプリッテレータを生成する際に便利です。第2引数の0はスプリッテレータの特性(characteristics)を指定する部分で、ここでは特別な特性を設定していません。
mainメソッドでは、Arrays.asListで作成した整数のリストからイテレータを取得し、それをgetspiliterメソッドに渡してスプリッテレータへと変換しています。最後に、forEachRemainingメソッドを呼び出すことで、スプリッテレータ内に残っているすべての要素を順番にコンソールへ出力し、変換が正しく行われたことを確認できます。
-
Javaで回文を判定するプログラムの書き方【数値・文字列の実例付き】
回文(パリンドローム)とは、逆から読んでも同じになる文字列や数値のことです。たとえば、121、313、525 といった数値や、「aba」「wow」のような文字列が回文に該当します。この記事では、Javaを使って回文を判定する方法を、数値の場合と文字列の場合の2つのパターンに分けて、サンプルコードと実行結果とともにわかりやすく解説します。回文数をチェックする方法数値が回文かどうかを判定するには、元の数値を1桁ずつ取り出して逆順に組み立て直し、元の値と比較します。具体的には、剰余演算(%10)で末尾の桁を取り出し、それを結果変数に10倍しながら加算していくことで反転した数値を作れます。サンプルコー
-
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