2011-06-30 97 views
0

我已經使用JAX-WS構建了一個SOAP服務,並且它返回了一些排序結果,這些結果基本上按客戶認爲美觀的順序排序。我的後臺處理沒有問題,並且結果始終以正確的順序出現。現在由wsimport生成的客戶端部分在接收到這些結果時正在使用ArrayLists,這些結果不能保證在迭代時保持順序。有什麼方法可以覆蓋這個?或者我可以在模式中的SOAP方面做更好的事情,這將告訴任何客戶端它需要保持訂單? (因爲我只是知道我將不得不爲此做一個C#客戶端)保留SOAP結果的排序順序

tia !!

回答

3

當它收到這些結果時使用ArrayLists,這些結果不能保證在迭代時保持順序。

這個假設來自哪裏?

The java.util.List interface represents an ordered collection。集合中元素的順序是至關重要的。在迭代時沒有返回集合中元素的正確順序的java.util.List的任何實現都將破壞接口的契約。

The Javadoc for the List.iterator()方法狀態(重點煤礦):

返回適當序列在此列表中的元素的迭代器。

ArrayList返回的迭代器不違反這個。它以與底層數組相同的順序向您返回元素。

+0

是的你說得對,謝謝! – mezmo