2015-11-02 64 views
-1

我有一個需要幫助的Java類的項目。我誠實地不善於Java或對它充滿激情。但是,我需要通過這門課程,所以我需要一些幫助。我正在製作一個充當在線書店的程序。它以一個主菜單:需要一個目錄的搜索方法和排序方法

public static void menu(){ 
    System.out.println("----MAIN MENU----"); 
    System.out.println("1. View Catalog"); 
    System.out.println("2. Search Catalog"); 
    System.out.println("3. Sort Catalog"); 
    System.out.println("4. Checkout"); 
    System.out.println("5. Exit"); 
    System.out.println("Option: "); 
    } 

到目前爲止,我所做的目錄:

public static void viewCatalog(){ 
    System.out.println("Welcome to the ABC Catalog!"); 
    System.out.println("Product Description Product Category Product Price"); 
    System.out.println("-----------------------------------------------------------"); 
    System.out.println("Alumni Drink ware Gifts     25.00 "); 
    System.out.println("Binders    School Supplies   3.00 "); 
    System.out.println("Bookbag    School Supplies  20.00 "); 
    System.out.println("Fabulous Desserts Textbooks    25.00 "); 
    System.out.println("Folders    School Supplies   1.00 "); 
    System.out.println("Gift Cards   Gifts     25.00 "); 
    System.out.println("Highlighters  School Supplies   1.00 "); 
    System.out.println("Jacket    Campus Gear   65.00 "); 
    System.out.println("JAVA Programming Textbooks    150.00 "); 
    System.out.println("Network Solutions Textbooks    75.00 "); 
    System.out.println("Pencils    School Supplies   1.00 "); 
    System.out.println("Pens    School Supplies   2.00 "); 
    System.out.println("Shorts    Campus Gear   10.00 "); 
    System.out.println("Sweatshirts   Campus Gear   40.00 "); 
    System.out.println("T-Shirts   Campus Gear   15.00 "); 
    System.out.println("Web Design Ideas Textbooks    25.00 "); 
    System.out.println("---------------------------------------------------------"); 
} 

但我需要一個方法能夠進入一些準則,搜索目錄,並打印匹配標準。我還需要一種方法,通過提高價格,降低價格,字母順序,類別類型或產品說明來對目錄進行分類。該項目必須至少有一個面向對象的方法。我還需要一種將目錄中的項目添加到購物車的方法。

任何代碼片斷將不勝感激。我對任何關於作弊的講座都不感興趣,所以請不要發佈任何類似的內容。我希望有人會對一位只需要通過本課程的網絡開發人員表示同情,以便進入我更熱衷的課程。

+0

這個數據將如何被存儲到最初? –

回答

0

您需要一個數據結構來保存您的數據。列表適合您的情況。從數據創建項目對象並將其放入列表中。代碼可能有錯誤,因爲我沒有IDE來測試它。

class Item 
{ 
    public Item(String d, String c, double p) 
    { 
     description = d; 
     category = c; 
     price = p; 
    } 
    String description; 
    String category; 
    double price; 
} 

您可以將字段設置爲private並寫入setter和getter字段。現在爲目錄中的每一行創建一個Item對象,並將它們添加到列表中。

List<Item> list = new ArrayList<>(); 
Item item = new Item("Binders","School Supplies","3.00"); 
list.add(item); 

通過使用自定義比較器對您的項目排序。這個使用描述字段對列表進行排序。如果您想按降序排序,您可以運行常規排序並反轉結果列表。

void sortByDescription(List<Item> list) 
{ 
    Collections.sort(list, new Comparator<Item>(){ 
      public int compare(final Item o1, final Item o2){ 
       return o1.description.compareTo(o2.description); 
      } 
    }); 
} 

void sortByDescriptionBackwards(List<Item> list) 
{ 
    sortByDescription(list); 
    Collections.reverse(list); 
} 

搜索方法接受一個String參數並在項目對象的所有3個字段中查找匹配項。如果它發現匹配項目被添加到結果列表並且返回該列表。原始列表中未更改。

List<Item> search(final String searchFor) 
{ 
    List<Item> searchResults = new ArrayList<>(); 
    for(int i = 0; i<list.size(); i++) 
    { 
     Item item = list.get(i); 
     if(item.description.contains(searchFor) || 
      item.category.contains(searchFor) || 
       String.valueOf(item.prize).contains(searchFor)) 
     {searchResults.add(item);} 
    } 
    return searchResults; 
} 
+0

因此,對於列表項目,你會把這些在視圖目錄方法? –

0

好吧,我會盡力回答多達我可以:

你可以通過簡單地換循環遍歷一個數組,直到找到一個條目匹配你要找的內容進行搜索。

有幾個使用compareTo的本地排序方法,但如果您需要很多不同的排序方法,可能會更好地編寫自己的排序方法。

我想說,如果您只需要按照一個標準進行排序,請參閱是否可以使用標準庫中的函數。

希望有幫助。