2014-01-18 62 views
0

我需要從java.util.List中獲取一個Scala不可變集合,以便利用Set類具有關於其元素的唯一性的約束(我期望在轉換過程中會丟失最終重複的內容),但我無法弄清楚如何從這個方法得到一個Set [String]:Scala的Java集合:將java.util.list轉換爲scala.immutable.Set的最佳方式是什麼?

import scala.collection.JavaConverters._ 
import org.openqa.selenium.htmlunit.HtmlUnitDriver 

class Abc { 

    val driver: HtmlUnitDriver 

    def collect(patterns: Set[String]): Set[String] = { 
     patterns.map{ pattern => 
     driver.findElementsByXPath(pattern).asScala.map{ link =>  
      link.getAttribute("href") 
     } 
     } 
    } 

} 

你能幫我嗎?

回答

1

您可以使用拼合得到列表[WebElement],然後將其轉換爲設置

def collect(patterns: Set[String]): Set[String] = { 
    patterns.map{ pattern => 
    driver.findElementsByXPath(pattern).asScala.map{ link =>  
     link.getAttribute("href") 
    } 
    }.flatten.toSet 
} 
相關問題