我有一个需要帮助的Java类项目。老实说,我不擅长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("---------------------------------------------------------");
}
但我需要一种能够输入一些标准,搜索目录并打印匹配标准的方法。我还需要一种方法,通过提高价格,降低价格,字母顺序,类别类型或产品描述来对目录进行排序。该项目必须至少有一个面向对象的方法。我还需要一种方法将目录中的项目添加到购物车中。
任何代码段都会非常受欢迎。我对任何关于作弊的讲座都不感兴趣,所以请不要发布任何类似的内容。我希望有人会对Web Dev学生表示同情,他们只需要通过本课程,就可以继续学习我更热衷的课程。
答案 0 :(得分:0)
好的,我会尝试尽可能多地回答:
您可以通过简单地循环遍历数组进行搜索,直到找到与您要查找的条目匹配的条目。
有一些使用compareTo的原生排序方法,但是如果你需要很多不同的排序方法,最好自己编写。
我会说,如果你只需要按一个标准排序,看看你是否可以使用标准库中的函数。
希望这有帮助。
答案 1 :(得分:0)
您需要一个数据结构来保存您的数据。列表适用于您的情况。从数据创建Item对象并将它们放在列表中。代码可能有错误,因为我没有IDE来测试它。
class Item
{
public Item(String d, String c, double p)
{
description = d;
category = c;
price = p;
}
String description;
String category;
double price;
}
您可以将字段设为私有字段并编写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);
}
Search方法接受String参数,并在item对象的所有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;
}