Java 在哈希集中传递方法是一种好的做法吗?

Java 在哈希集中传递方法是一种好的做法吗?,java,methods,set,hashset,Java,Methods,Set,Hashset,在HashSet中传递方法是否是一种好的实践,就像下面我直接在HashSet中传递方法一样 Set byPrice=newhashset(getProductsByPriceFilter( 低价,高价)** 公共集过滤器产品(BigDecimal低价格, BigDecimal高价,字符串制造商,字符串类别){ Set byPrice=newhashset(getProductsByPriceFilter( 低价,高价); Set byManufacturer=newhashset( getPro

在HashSet中传递方法是否是一种好的实践,就像下面我直接在HashSet中传递方法一样

Set byPrice=newhashset(getProductsByPriceFilter( 低价,高价)**

公共集过滤器产品(BigDecimal低价格,
BigDecimal高价,字符串制造商,字符串类别){
Set byPrice=newhashset(getProductsByPriceFilter(
低价,高价);
Set byManufacturer=newhashset(
getProductsByManufacturer(制造商));
Set byCategory=newhashset(
getProductsByCategory(类别));
按价格保留(按制造商);
按价格保留(按类别);
按价格退货;
}

对此有一个想法:如果您的方法已经返回了可以填充整个集合的内容,为什么不让方法返回该集合

Set<Product> byPrice = getProductsByPriceFilter(
                lowPrice, highPrice));
Set byPrice=getProductsByPriceFilter(
低价,高价);
有一些

public Set <Product> getProductsByPriceFilter(double low, double high) {
公共设置getProductsByPriceFilter(双低双高){
与其他过滤器相同


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

一个想法是:如果您的方法已返回可以填充整个集合的内容,为什么不让方法返回该集合

Set<Product> byPrice = getProductsByPriceFilter(
                lowPrice, highPrice));
Set byPrice=getProductsByPriceFilter(
低价,高价);
有一些

public Set <Product> getProductsByPriceFilter(double low, double high) {
公共设置getProductsByPriceFilter(双低双高){
与其他过滤器相同


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

您没有将方法传递给
HashSet
构造函数,而是传递
getProductsByPriceFilter()的返回值
。但是还有比这更有效的方法吗?是的,所以我应该使用循环来添加所有要设置的值。我对学习java有点陌生。如果您的代码运行得不太慢,不要担心效率,也不要担心可读性。如果您的代码运行得太慢,请使用探查器。您的方法没有错,也不应该太复杂r执行时间。您没有将方法传递给
HashSet
构造函数,而是传递
getProductsByPriceFilter()的返回值
。但是还有比这更有效的方法吗?是的,所以我应该使用循环来添加所有要设置的值。我对学习java有点陌生。如果您的代码运行得不太慢,不要担心效率,也不要担心可读性。如果您的代码运行得太慢,请使用探查器。您的方法没有错,也不应该太复杂r以及执行时间。