0

次の 2 つの構造があるとします。

ArrayList<String> test =new ArrayList<String>();
HashTable <ArrayList<String>, Integer> h1 = new Hashtable<Arraylist<String>, Integer>();
HashTable <ArrayList<String>, Integer> h2 = new Hashtable<Arraylist<String>, Integer>();

h1 に h2 に存在するキー (基本的には Arraylist) が含まれているかどうかを確認し、その中の int 値を次のように置き換えることはできますか?

for (Hashtable <ArrayList<String>, Integer> entry : h2.entrySet()) {
    if(h1.containsKey(entry.getKey()))
    entry.replace(entry.getKey(), 1);
}

または、次のようにします。

for (Hashtable <ArrayList<String>, int> entry : h2.entrySet()) {
    if(h1.containsKey(entry.getKey()))
    h2.put(entry.getKey(),1);
}

?? 私を助けてください...

4

3 に答える 3

0

これは本当に面白いことであり、人々がすでに言っているように、データ型の使用を真剣に検討する必要があります。しかし、これでうまくいくはずです。

Hashtable<ArrayList<String>, Integer> h3 = (Hashtable<ArrayList<String>, Integer>) h2.clone();

for(ArrayList<String> a: h2.keySet()){
    if(h1.containsKey(a)){
        h3.put(a, 1);
    }
}
h2 = h3;
于 2013-07-03T08:48:09.700 に答える