哈哈哈,不好意思,问了题主那么久...根据我获得需求描述,最后我还是觉得引用新的编程元素来使业务稍微变简单的,我整理到需求应该是:
首先给定一个指定关键字的排序,给出一个字符串列表,对列表进行排序,若字符串列表中包含了关键字,则该这种字符串优先级高,排前面,并且还要根据该字符串所包含的关键字顺序排序,其他没有包含关键字的字符串则靠后,顺序不用关心
所以我引用了新的编程元素,因为给出的orderings是有顺序的,所以只有一个字符串是不能体现这个顺序的,我新增加了一个元素OrderParam
@Getter
@Builder
public class OrderParam{
private String param;
// 值越小,优先级越高
private int order;
}
所以之前的
List orderings= Stream.of("温度", "运行时间").collect(Collectors.toList());
就变为
List orderings= OrderParams.createOrderings("温度", "运行时间");
这里写了一个工具类OrderParams
public class OrderParams{
/**
* 根据字符串数组生成OrderParam集合
* @param params
* @return
*/