Once you’ve proved that an unchecked cast is safe, suppress the warning in as narrow a scope as possible (Item 27). In this case, the constructor contains only the unchecked array creation, so it’s appropriate to suppress the warning in the entire constructor.
But why not still encourage putting it on just the statement? I don't see the downside, and then when someone else comes in to make the class better, we don't accidentally mask an error they might introduce.