それはあなたが何をしようとしているかによって異なります。
個人的には、そのようなクラスを作成したことがないと思います。クエリ文字列をまとめたいとき、そこに入れたい特定のフィールドのセットがあり、StringBuilder または String "+" を使用してそれらをまとめます。つまり、私は Hashtable やその他の種類の構造を持っていません。それが何であれ、個々のフィールドがいくつかあるだけです。通常、フィールドをコレクションに入れてから取り出すことの価値はわかりません。
とはいえ、URL の構築をラップしたい汎用関数がある場合もあると思います。その場合、Hashtable (より可能性が高いのは Hashmap) が新しいコレクションを使用する可能性が高いことを確認してください。
または、最初に考えたのは、各パラメーターを保持する新しいクラスを作成して、名前と値の 2 つの異なるフィールドを持つことができるようにすることです。次に、関数をクラスに配置して、それらを等号でまとめて URL エンコードを行うことができます。次に、これらのオブジェクトの ArrayList を作成します。ArrayList は Hashtable よりも小さくて高速ですが、物事の規模からすれば節約はおそらく取るに足らないものです。
しかし、私が始めたポイントは次のとおりです。これらのパラメーターで何をしたいですか? コレクションにパラメーターを追加し、ある時点でそれらをすべて取り出してクエリ文字列を作成するだけの場合、ArrayList は問題なく、Hashtable も問題なく、ほとんどすべてのコレクションで問題ありません。
他にやりたいことはありますか?コレクションから要素をランダムに取得できるようにする必要がありますか? 2 つのコレクションを結合しますか? 同じクラスを使用して、データベース クエリなどの他の目的でパラメータを保持するので、リストを作成してどちらかの場所に渡すことができますか? などなど
呼び出し元が同じ名前の 2 つのパラメーターを追加しようとした場合、どうしますか。2 番目は最初のメッセージを黙って上書きする必要がありますか? それはエラーですか?または何?
等。