2009-06-09 128 views
1

想知道是否有方法克隆Java中的NamingEnumeration?我的程序爲人們搜索LDAP服務器,並且可能需要幾秒鐘才能完成。爲了得到結果的數量,我使用以下內容:克隆Java NamingEnumeration?

NamingEnumeration results = null; 
NamingEnumeration results2 = null; 

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

但既然結果2只是一)造成,當我去通過顯示結果results.hasMore(將始終返回false參考。

有沒有辦法克隆'結果',而不必重新執行搜索並將其分配給'results2'?

感謝,-Pete

回答

2

使用Collections.list(結果)將結果放入列表中,然後使用List.size獲取計數,並遍歷列表。

4

誰也不能保證,如果你重新搜索,你會得到相同的答案了。

簡單的解決方案是將結果複製到ListArrayList是特定的)。

+0

謝謝你們!十五個字符 – 2009-06-09 15:02:47

3

通常,如果您需要複製Enumeration(或Iterator),請將內容移至List。大多數枚舉不是直接可複製的。您可以手動創建列表或使用方法Collections.list(我錯過了那一刻)。