どのコレクションを使うか
- 題名: どのコレクションを使うか
- 著者: FutoNeko
- 日時: 2012/04/02 12:34:55
- ID: 30194
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: どのコレクションを使うか
- 著者: shu
- 日時: 2012/04/02 14:17:29
- ID: 30196
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: どのコレクションを使うか
- 著者: FutoNeko
- 日時: 2012/04/05 10:10:17
- ID: 30221
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
こんにちは。
結構なサイズのファイルをたくさん読み込ませるアプリケーションを作っています。
読み込ませる時に、何十秒かかかるので
そこはスレッドでプログレスバーを出して「読出し中」のような表示をしております。
高速化させるために、一度読み込んだファイルは
オブジェクトとしてメモリ上にキャッシュさせて、
再度、おなじファイルを読み出そうとしたときに
メモリ上に保持しているものがあるなら、それを返す
という仕組みを作ろうとしています。
この際に、
コレクションのArrayListかHashtableかSortedListかを使おうと思っています。
ここで、どれを選択するか迷っているので、アドバイスいただければ幸いです。
単純に、ファイル名をキーにしてオブジェクトを返すのなら
ハッシュテーブルを使うのかな、と思いましたが
実際にはメモリ上のキャッシュしている部分も結構なサイズなので
限界なしを考えてしまうと、メモリオーバーで壊れてしまうこともあるので
最大1000ファイルとか、そういう制限を持たせて
最も古いキャッシュから削除、という動作をさせようとしています。
そうすると、ハッシュテーブルでは、一番古いメモリキャッシュかわからないので
ArrayListで自作なのかな、とも思っています。
ハッシュリストでも、自分の望むような、仕組みを実装できるものでしょうか?
自分のコレクションの知識は、下記を読んだ程度のものです。
VB コレクション - ArrayList, Hashtableなど
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard28.htm
ご存知の方、おられましたら教えてください。
よろしくお願いします。