Java
 Computer >> コンピューター >  >> プログラミング >> Java

イテレータをスプリッテレータ(Spliterator)に変換するJavaプログラム

Javaでは、IteratorSpliteratorに変換することで、ストリーム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メソッドを呼び出すことで、スプリッテレータ内に残っているすべての要素を順番にコンソールへ出力し、変換が正しく行われたことを確認できます。

  1. Javaで回文を判定するプログラムの書き方【数値・文字列の実例付き】

    回文(パリンドローム)とは、逆から読んでも同じになる文字列や数値のことです。たとえば、121、313、525 といった数値や、「aba」「wow」のような文字列が回文に該当します。この記事では、Javaを使って回文を判定する方法を、数値の場合と文字列の場合の2つのパターンに分けて、サンプルコードと実行結果とともにわかりやすく解説します。回文数をチェックする方法数値が回文かどうかを判定するには、元の数値を1桁ずつ取り出して逆順に組み立て直し、元の値と比較します。具体的には、剰余演算(%10)で末尾の桁を取り出し、それを結果変数に10倍しながら加算していくことで反転した数値を作れます。サンプルコー

  2. 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