我想通过指定一些参数来获取Java List的元素子集。每个元素具有不同的特征,例如x位置,y位置,宽度,高度和类型。现在我想得到所有元素,哪个位置在特定的区间内,或者哪个宽度或高度不大于给定值,或者哪个类型等于某个String。
我的实际解决方案是,我写了一堆子集() - 在每种不同情况下应用的函数。
public List<Element> subsetByPositionX(
List<Element> elements, int minX, int maxX) { /*...*/ }
public List<Element> subsetByPositionY(
List<Element> elements, int minY, int maxY) { /*...*/ }
public List<Element> subsetByMaxWidth(
List<Element> elements, int maxWidth) { /*...*/ }
// some more subset methods for height and width
public List<Element> subsetByType(
List<Element> elements, String... types) { /*...*/ }
我有点不走运,因为它不是很通用。是否有更优雅的方式通过不同类型的特征来子集元素?