for (String winHandle : driver.getWindowHandles()) 
{
    driver.switchTo().window(winHandle); 
}
Can we rewrite this using Lambda Expression?
for (String winHandle : driver.getWindowHandles()) 
{
    driver.switchTo().window(winHandle); 
}
Can we rewrite this using Lambda Expression?
 
    
     
    
    I would go for
driver.getWindowHandles().forEach(windowHandle -> {
    driver.switchTo().window(windowHandle);
});
which is equivalent to:
for(String windowHandle : driver.getWindowHandles()) {
    driver.switchTo().window(windowHandle);
}
forEach method calls can be used for Collections.
You can go parallel with the usage of forEach together with parallelStream. Read further.
 
    
     
    
    You can do it like
driver.getWindowHandles().stream().forEach((i) -> {
     driver.switchTo().window(i);
});
or like
driver.getWindowHandles().parallelStream().forEachOrdered((i) -> {
     driver.switchTo().window(i);
});
Stream api offers other possibilities that can make your life easier.
