0

特定のデータ項目(ここでは文字)を入力すると、関連する要素にアクセスできます。

'A'を入力すると、値にアクセスできます(2, 3, 4, 5)。例:

A - 2,3,4,5   
B - 6,7,9  
C - 10, 11, 12, 13  
D - 1,8
and so on...

また、、、、Aは任意のデータ項目、または文字列であるB可能C性があります。Dint

私が考えているのは、線形配列を保持して、配列内の各項目をリンクリストのヘッダーにすることができるということです。これは、必要な上記のデータ構造に対する正確で最適なソリューションですか?これを行うためのデータ構造はすでにありますか?

4

2 に答える 2

1

最善の解決策は、テーブル値に配列 (またはリスト) を含むハッシュ テーブルを使用することです。

HashMap を使用した Java の例を次に示します。

Map<String,Integer[]> theMap;
theMap = new HashMap<String,Integer[]>();
theMap.put("A",{2,3,4,5});
theMap.put("B",{6,7,9});
theMap.put("C",{10,11,12,13});
theMap.put("D",{1,8});

/* Access Values */
int two = theMap.get("A")[0];

ArrayList整数の配列の代わりに使用することもできます。

コードは次のようになります。

ArrayList<Integer> listA = new ArrayList<Integer>();
    listA.add(2);
    listA.add(3);
    listA.add(4);
    listA.add(4);

ArrayList<Integer> listB = new ArrayList<String>();
    listB.add(6);
    listB.add(7);
    listB.add(9);

ArrayList<Integer> listC = new ArrayList<Integer>();
    listC.add(10);
    listC.add(11);
    listC.add(12);
    listC.add(13);

ArrayList<Integer> listD = new ArrayList<Integer>();
    listD.add(1);
    listD.add(18);

    Map<String,List<Integer>> theMap;
    theMap = new HashMap<String,List<Integer>>();
    theMap.put("A",listA);
    theMap.put("B",listB);
    theMap.put("C",listC);
    theMap.put("D",listD);

    /* Access Values */
    int two = theMap.get("A").get(0);
于 2012-11-25T11:51:57.067 に答える
0

要素がリスト(またはセット)である単純な辞書/マップ/連想配列を使用します。Pythonでは、collections.defaultdictここで役立ちます。

import collections
d = collections.defaultdict(list)
A,B,C,D = ['A', 8, 3.0, (1,2)]
d[A].extend([2, 3, 4])
d[A].append(5)
# d[A] is now [2,3,4,5]
于 2012-11-25T11:51:38.163 に答える