Iterating over the results of TableView.getSelectedRanges() is cumbersome because it returns a Sequence<Span> which is not iterable using a for-each loop. Instead it should return a List<Span>, which is iterable. Javadoc should state that the returned List is immutable.
JavaDoc of TableView.getSelectedRows() should clearly state that this is a convenience method only, and that it allocates a result array on each invocation. Likewise for ListView.getSelectedItems().
See http://firstname.lastname@example.org%3e for motivation of this issue.