tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^5: 配列に関して教えてください><
投稿日: 2010/12/18(Sat) 16:22
投稿者魔界の仮面弁士
> List/Queue/Stackをまず知りませんでした

配列の場合、最初に要素数を決定しておく必要がありますが、
これらのクラスでは要素数を可変にできるため、取り扱いが容易となります。

要素数や順番が固定的な場合には、配列で十分ですが、
事前に何個のデータを持つべきか分からないような場合や、
データの削除や挿入がある場合には、配列よりも便利かと思います。


> List/Queue/Stackとはどういうものなのか

これらは、複数のデータを蓄えておき、それを後で取り出すために使われる
「コレクション」系のクラスです。配列(Array)もコレクションの一種です。

Stack は、最後に入力したデータが先に出力されます(最初の入力は最後に出力される)。
Queue は、最初に入力したデータが先に出力されます(最後の入力は最後に出力される)。
List  は、任意の場所のデータを取り出せます。


スタックとは積み上げるという意味です。お皿を順々に上に重ねていった場合、
一番上のお皿から取り出していきますよね。いきなり下のお皿を取る事はできません。

キューとは、待ち行列の意味です。ラーメン屋の順番待ちの場合、
最初に並んだ人が先で、一番最後に並んだ人は最後になりますね。

リストは一覧表。これは配列とほぼ同じで、先に追加したか後に追加したかは関係なく、
N番目のデータを取り出せるようになっています。

------------
Dim s As New Stack(Of Integer)()
s.Push(1234)
s.Push(4567)
s.Push(6789)
s.Push(8901)
MsgBox(s.Pop())         '最後の「8901」が取り出される
MsgBox(s.Pop())         '「6789」が取り出される

Dim q As New Queue(Of Integer)()
q.Enqueue(111)
q.Enqueue(333)
q.Enqueue(555)
q.Enqueue(777)
MsgBox(q.Dequeue())     '最初の「111」が取り出される
MsgBox(q.Dequeue())     '「333」が取り出される

Dim l As New List(Of Integer)()
l.Add(1001)
l.Add(2002)
l.Add(3003)
l.Add(4004)
MsgBox(l(0))            '0番目の「1001」が取り出される
MsgBox(l(3))            '3番目の「4004」が取り出される

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。