- PR -

FIFOを実現する方法について

1
投稿者投稿内容
Morley
会議室デビュー日: 2003/02/27
投稿数: 18
投稿日時: 2005-04-26 23:52
1秒ごとにスレッド間でメモリ使用量の値を取得します。
10個の配列xがあるとします。
1秒ごとに取得した値をまず最初に、
x[0]に代入します。
次の1秒たったら、
x[0]の値をx[1]に移動し、今取得した値をx[0]に代入します。
これを10回繰り返していきます。

1秒目:x[0]
     └↓
2秒目:x[0] x[1]
     └↓ └↓
3秒目:x[0] x[1] x[2]

多少見にくいですが、こんな感じにです。

最終的には、x[0]からx[9]までの配列がすべて埋まります。
次の値を取得したときに、x[9]の値は押し出されて破棄されます。
x[0]〜x[8]の値が、1つずれて、x[1]〜x[9]になり、
そして今取得された値がx[0]に入ります。
すなわち、配列要素が10個しかないので、
古いもので10以上の要素は破棄されて行くようにしたいのです。
データ構造で言うFIFOをJAVAで実現したいのですが、
LISTなどを使おうとしましたが、いまいち的はずれな気がします。
手軽に実現できる方法がありましたらご教授願えないでしょうか?
よろしくお願いします。
ねく
会議室デビュー日: 2005/04/19
投稿数: 11
お住まい・勤務地: Tokyo
投稿日時: 2005-04-27 00:09
Java2 SE5.0には、そのものずばりなQueueというAPIが提供されていたように
思います。

それ以前のバージョンならLinkedListを使って、addLast(),removeFirst()メソッドを
利用して実装すれば良いかと。

ぱっと思いついたのは、そんなところです。
_________________
nec spe nec metu.

ねく
1

スキルアップ/キャリアアップ(JOB@IT)