在搜索的时候,例如:空调,然后搜索到的有空调,还有被子,被子里面有空调,然后带空调的被子在前面,空调在后面,如何把空调往前面放放,把被子往后面放,用java代码怎么实现
时间: 2023-10-07 11:05:02 浏览: 13
你可以使用Java中的Comparator接口来实现搜索结果排序。下面是一个例子:
假设你有一个Product类,它有一个名为name的属性,你可以通过比较name属性的值来对搜索结果进行排序。现在,你想让搜索结果中包含“空调”的产品排在前面,而不是像默认情况下按名称顺序排序。
首先,你需要实现Comparator接口,然后在compare方法中编写比较逻辑。下面是一个实现示例:
```
import java.util.Comparator;
public class ProductComparator implements Comparator<Product> {
@Override
public int compare(Product p1, Product p2) {
boolean p1Contains = p1.getName().contains("空调");
boolean p2Contains = p2.getName().contains("空调");
if (p1Contains && !p2Contains) {
return -1;
} else if (!p1Contains && p2Contains) {
return 1;
} else {
return p1.getName().compareTo(p2.getName());
}
}
}
```
在compare方法中,如果p1包含“空调”,而p2不包含,则返回-1,表示p1应该排在p2之前;如果p2包含“空调”,而p1不包含,则返回1,表示p2应该排在p1之前;否则,按名称顺序排序。
现在,你可以将ProductComparator传递给Collections.sort方法,以对搜索结果进行排序:
```
List<Product> products = ...; // 搜索结果
Collections.sort(products, new ProductComparator());
```
这将按照你指定的逻辑对搜索结果进行排序。