例えば:
public static LinkedList<String, Double> ll = new LinkedList<String, Double>;
例えば:
public static LinkedList<String, Double> ll = new LinkedList<String, Double>;
あなたの質問から、私はあなたが探していると思います(100%確実ではありません)
java.util.LinkedHashMap<K, V>
あなたの場合、それはLinkedHashMap<String, Double>
Javaドキュメントから:
Map インターフェイスのハッシュ テーブルとリンク リストの実装で、反復順序が予測可能です。この実装が HashMap と異なる点は、そのすべてのエントリを実行する二重リンク リストを維持することです。
で要素を取得したい場合はlist.get(5)
、次のことができます。
LinkedList<Entry<String, Double>>
Entry要素Entry entry = list.get(5)
をentry.getKey()
_entry.getValue()
すべてのコメントを読んで、次のようにすることをお勧めします。
public class StringAndDouble {
private String str;
private double dbl;
// add constructor
// add getters, setters and other methods as needed.
// override equals() and hashCode()
}
これで、次を使用できます。
List<StringAndDouble> list = new LinkedList<>(); // or
List<StringAndDouble> list = new ArrayList<>(); // better in most cases
これで、インデックスによってオブジェクトにアクセスできます。
この回答は、ニーズに合わせて新しいクラスを作成します。String
クラスには one 、 one の2 つのフィールドがありますdouble
。これは、クラスを 2 次元にしません。そこに誤解があると思います。ディメンションがある場合、要素にアクセスするにはインデックスn
が必要です。n
インデックスによるアクセスについて話していたので、複数のフィールドを持つオブジェクトを保持する 1 次元のリストを探していると思います。
@KentへのコメントのOPは、インデックスでアイテムを取得できるようにしたいと言っているので...
LinkedList
(およびLinkedHashMap
)は非効率的であることに注意してください。彼はArrayList
. したがって、彼の「2D」実装は
ArrayList<Map.Entry<String, Double>>
インデックスによる取得を効率的にサポートします。
通常の についてはget(String key)
、すべてのエントリの線形検索を行う必要がありますが、これは非効率的です。
それで、決定があります: (キーまたはインデックスによる) どちらのアクセス方法がより重要ですか?
こんな感じですか?
HashMap<String, Double> hm = new HashMap<String, Double>();
実際には、相互にリンクされたリストを使用できます...例:
public LinkedList<LinkedList<Integer>> twoDimLinkedList = new LinkedList<LinkedList<Integer>>();
それで:
////////////////
int value = twoDimLinkedList.get(3).get(4);
/////////////////
または(反復目的で使用する予定の場合):
/////////////////
for (int i = 0; i < twoDimLinkedList.size(); i++) {
LinkedList<Integer> twoDimLinkedListRow = new LinkedList<Integer>();
for (int m = 0; m < twoDimLinkedList.get(i).size(); m++) {
twoDimLinkedListRow.add(value);
}
twoDimLinkedList.add(twoDimLinkedListRow);
}
////////////////