2015-04-02 78 views
0

我有一個從Seq創建的LinkedHashSet。我使用了LinkedHashSet,因爲我需要保持Seq的順序,但也要確保唯一性,就像一個Set。我需要檢查這個LinkedHashSet對另一個序列來驗證它們中的各種屬性是相同的。我認爲我可以循環使用索引i,但它似乎沒有。這是我想要完成的一個例子。使用Scala中的索引循環訪問LinkedHashSet

var s: Seq[Int] = { 1 to mySeq.size } 
return s.forall { i => 
    myLHS.indexOf(i).something == mySeq.indexOf(i).something && 
    myLHS.indexOf(i).somethingelse == mySeq.indexOf(i).somethingelse 
} 

那麼,如何訪問LHS的個別元素?

回答

0

在這種情況下LinkedHashSet不是必需的。由於我是從Seq製作的,所以已經訂購了。我不必將其轉換爲LHS,以使其具有獨特性。顯然,Seq有distinct方法,它將刪除序列中的重複項。從那裏,我可以通過索引訪問這些項目。

0

考慮在集合上使用zip方法來創建對(元組)的集合。具體情況取決於您的具體情況。你可能想要做mySeq.zip(myLHS)myLHS.zip(mySeq),這將創建不同的結構。你可能想要mySeq.zip(myLHS),但我猜測。另外,如果收藏品非常大,則可能需要先觀看,例如mySeq.view.zip(myLHS),以便對集合也不嚴格。

一旦你有了這個聯合收集,你可以使用理解(或直接,myZip.foreach)來遍歷它。