Kawaii Lab

プログラミングとかサービス開発とか

QueueとStackは可読性を上げる

今日は問い合わせも安定していたので、アルゴリズムを調べていたのだがFIFOLIFOについて行き着いた。

 

FIFO先入れ先出しのQueueだ。

順番を特に気にせずに、繰り返しのQueryを投げたい場合にはこちらを使う。

 

LIFOが後入れ先出しのStackだ。

挿入したものから順次処理されるので、順番を意識しながらQueryを投げたい場合はこちらを使う。

 

考えてみたがスタックトレースも、正に処理をStackし出力しているのだ。

親から子に向かってログが出ているのだから当然の帰結なのだが、意味が繋がると気持ちいいものだ。

 

これまでは大体HashMapで繰り返しや大量の処理を行ってきたのだが、HashMapだと取り出すたびに全ての要素をずらして整合性を取っている。

要素を回すだけならQueueでいいのだから、こちらを使ったほうが速いいしシンプルだ。

 

またJavaPythonには専用のクラスも用意されているので、使うことも容易だ。

 

適切なアルゴリズムを用いることで、可読性も上がるだろう。

利点としては適切な使い分けをすることで、ここはmapを使っているからKeyとValueに意味があるのだろう。ここはQueueを使っているから要素を回しているだけなんだな。といったようにそれぞれの処理自体が意味を持ち分かりやすくなるといった次第だ。

 

とても面白い。