【发布时间】:2013-06-21 19:45:43
【问题描述】:
我需要对一个数组进行排序,其中匹配项出现而其他项将下降。
例如。我有一个数组: [ z , asxdf , abasdf , abcasdf , b , bc , bcd , c ] 我需要的是,当我传递一个关键字假设 "b" 时,它应该对给定的数组进行排序,其中所有以 b.. 开头的字符串将首先出现,然后之后休息。这将产生最终输出: [ b , bc , bcd , z , c , .. (rest).]
如果可以在 Java 中使用比较器?
String keyWord = "b";
String[] s = {"z", "asxdf", "abasdf", "abcasdf", "b", "bc", "bcd", "c"};
Arrays.sort(s, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
//Code to sort array according to need
}
});
System.out.println(Arrays.toString(s));
Result -> [ b , bc , bcd , z , c , ...]
(如果可以帮助我解决这个问题,我可以使用 List 而不是 Array 或任何其他)
【问题讨论】:
-
所以你想让我们为你做比较算法?
-
是的,如果它不伤害你。但是,如果您再次阅读我的问题,您会看到我问的“如果可以在 Java 中使用比较器?”。
-
算法是否必须稳定,即2组中的每一个中的元素顺序是否必须与原始数组中的相同?
-
否,但优先考虑与关键字最匹配的人。
-
“最佳匹配”是什么意思?他们要么匹配,要么不匹配。
标签: java string sorting collections comparator