1

Java で NamingEnumeration を複製する方法があるかどうか疑問に思っていますか? 私のプログラムは LDAP サーバーで人を検索しますが、完了するまでに数秒かかる場合があります。結果の数を取得するために、次を使用しています。

NamingEnumeration results = null;
NamingEnumeration results2 = null;

results = ctx.search("", "("+searchAt+"=" +searchVal +")", controls);
results2 = result;
int i = 0;
while(results2.hasMore())
{
    results2.next();
    i++;
}

しかし、results2 は、結果を表示するときの結果への参照にすぎないため、results.hasMore() は常に false を返します。

検索を再実行して「results2」に割り当てることなく、「結果」を複製する方法はありますか?

ありがとう -ピート

4

3 に答える 3

4

検索をやり直しても同じ答えが返ってくるという保証はありません。

List簡単な解決策は、結果を(ArrayList具体的には)にコピーすることです。

于 2009-06-09T14:34:41.583 に答える
3

Enumeration一般に、 (または)のコピーを作成する必要がある場合はIterator、コンテンツをに移動しますList。ほとんどの列挙は直接複製できません。手作業でリストを作成するか、方法を使用することができますCollections.list(私はそこで少し逃しました)。

于 2009-06-09T14:36:43.933 に答える
2

Collections.list(results)を使用して結果をリストに入れ、次にList.sizeを使用してカウントを取得し、リストを反復処理します。

于 2009-06-09T14:38:35.693 に答える