我遇到了一个问题,用户得到一个空的食谱书,他们可以输入和排序食谱。
我知道如果一本书是空的,它就会被排序,有一个食谱和两个食谱(升序/降序)。这些可以使用二进制搜索。
但是当用户输入第三个食谱时,它可能是“cookies, donut, turkey”(已排序)或“cookies, donut, apples”且未排序。如果它没有排序,那么我必须使用线性搜索。
这是我到目前为止所拥有的
public void sortBook(int choice, boolean ascend) {
RecipeBookComparator comparing = new RecipeBookComparator(choice, ascend);
mList.sort(comparing);}
public class RecipeBookComparator implements Comparator {
private int mSortRBook;
private boolean mAscend;
public RecipeBookComparator (int choice, boolean ascend) {
mSortRBook = choice;
mAscend = ascend;
}
public int compare(Object o1, Object o2) {
Recipe s1 = (Recipe)o1, s2 = (Recipe)o2;
switch (mSortRBook) {
case 1:
if (mAscend == true) {
int compareName = s1.getName().compareTo(s2.getName());
if (compareName != 0) {
return compareName;
}
}
else {
int compareName = s1.getName().compareTo(s2.getName());
if (compareName != 0) {
return compareName * -1;
}
} ///more cases...
我知道我应该做什么,但我不知道如何“以代码方式”处理它