在HashSet中传递方法是一种好习惯吗?

时间:2016-01-14 04:40:45

标签: java methods set hashset

在HashSet中传递方法是一个好习惯,就像我直接在HashSet中传递方法一样?

  

设置byPrice = new HashSet(getProductsByPriceFilter(                     lowPrice,highPrice)); **

  public Set<Product> filterProducts(BigDecimal lowPrice,
                BigDecimal highPrice, String manufacturer, String category) {

            Set<Product> byPrice = new HashSet<Product>(getProductsByPriceFilter(
                    lowPrice, highPrice));
            Set<Product> byManufacturer = new HashSet<Product>(
                    getProductsByManufacturer(manufacturer));
            Set<Product> byCategory = new HashSet<Product>(
                    getProductsByCategory(category));

            byPrice.retainAll(byManufacturer);
            byPrice.retainAll(byCategory);

            return byPrice;
        }

1 个答案:

答案 0 :(得分:2)

有人想到这一点:如果你的方法已经返回了可以填满整个Set的东西 - 为什么没有方法返回那个Set?

Set<Product> byPrice = getProductsByPriceFilter(
                lowPrice, highPrice));

有些

public Set <Product> getProductsByPriceFilter(double low, double high) {

与其他过滤器相同。

或者......将已经过滤的集合传递到下一阶段。您可能会在getProductsByManufacturer ()中对所有产品进行循环。如果您已将已过滤的集合添加为参数,则可以减少此循环以循环所有已在价格范围内的产品,依此类推。