Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】SplMaxHeap::extract()メソッドの使い方

extractメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

extractメソッドは、SplMaxHeapオブジェクトから現在保持されている最大の要素を取り出し、その要素をヒープから削除するメソッドです。SplMaxHeapは、PHPの標準ライブラリ(SPL)によって提供される、データ構造の一種である最大ヒープを実装したクラスです。最大ヒープとは、親要素が常にその子要素よりも大きい値を持つという特性を持つデータ構造で、優先度キューなどの実装によく用いられます。

このextractメソッドを実行すると、常にヒープの最上位に位置する、コレクション内の最大値が取り出されて戻り値として返されます。要素が一つ取り除かれた後も、SplMaxHeapは内部的にデータ構造を自動で再構成し、残りの要素が引き続き最大ヒープの特性を保つように保証します。これにより、次にこのメソッドが呼び出された際にも、正しく新しい最大値が取得できるようになります。

ヒープが空の状態でextractメソッドを呼び出すと、RuntimeExceptionが発生します。そのため、メソッドを呼び出す前には、isEmpty()メソッドなどを用いてヒープが空でないことを確認することが重要です。このメソッドは、最も優先度の高い要素から順に処理を進めたい場合や、常に最大の値にアクセスする必要があるシステムで特に有用です。戻り値は、ヒープから取り出された最大値となります。

構文(syntax)

1<?php
2$heap = new SplMaxHeap();
3$heap->insert(10);
4$heap->insert(20);
5$extractedValue = $heap->extract();
6?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

mixed

SplMaxHeap::extract() メソッドは、ヒープから最大要素を取り出し、その要素を返します。ヒープが空の場合は NULL を返します。

関連コンテンツ