所以我有个问题,下一步该怎么办。我正在做这个项目,要求是。
Wings咖啡厅
一家当地的咖啡店向顾客出售下面所示的各种不同的物品。您需要编写一个Java应用程序,用于跟踪这些项。此外,该程序还提供了一种打印出项目列表的方法。
Item Name Price
Coffee $1.00
Water $2.00
Milk $1.50
Bagel $1.25
Donut $0.75
您的程序将创建一个名为Item的类。此类具有以下功能:
- 保存项名称的String示例变量
- 用于保存价格的双示例变量
- 一个构造函数,它接受String和double作为ini的参数
创建了这个类之后,编写第二个名为CoffeeDriver的类。此类具有以下方法:
- sortName -此方法按项目名称对项目数组进行排序,然后在屏幕上显示所有项目的名称和价格
- sortPrice -此方法按项目价格对项目数组进行排序,然后在屏幕上显示所有项目的名称和价格
- main -它使用上面的数据创建一个Item对象数组来设置每个Item的信息。
- 每个示例变量的get和set方法
这是我目前所拥有的一切。我很难思考如何对数组排序。所以如果我对两个不同的数组排序,我如何让它们保持正确的顺序。比如coffee = $1
,我如何排序并将它们放在一起。
import java.util.Scanner;
public class CoffeeDriver {
//main method
public static void main (String[] args){
String[] itemName = {"Coffee, Water, Milk, Donut, Bagel"};
double[] itemPrice = {1.00, 2.00, 1.50, 0.75, 1.25};
Scanner input = new Scanner(System.in);
String decision;
System.out.println ("Welcome to Wings Coffee Shop");
System.out.println ("We have a great list of tasty items on our menu.");
System.out.println ("Would you like to see these items sorted by");
System.out.println ("name or by price? (n/p): ");
decision = input.nextLine();
if (decision == "n"){
sortName(itemName);
}
else {
sortPrice(itemPrice);
}
}
//method to sort by item name and display
public static void sortName (String[] array){
for (int i = 0; i < array.length; i++){
System.out.println (array[i].toString());
}
}
//method to sort by item price and display
public static void sortPrice (double[] array){
for (int i = 0; i < array.length; i++){
System.out.println (array[i]);
}
}
}
public class Item {
private String name;
private double price;
Item(String itemName, double itemPrice){
itemName = name;
itemPrice= price;
}
public String getName(){
return name;
}
public void setName(String itemName){
itemName = name;
}
public double getPrice(){
return price;
}
public void setPrice(double itemPrice){
itemPrice = price;
}
}
6条答案
按热度按时间trnvg8h31#
更正Item类定义。
你需要给字段分配参数(在OP中你已经给参数分配了字段)
使用Comparator对象参数实现单个字段的排序。
fhity93d2#
试着看看Arrays.sort,它应该可以帮助您实现所需的功能。
q5iwbnjs3#
“我在想怎么排序阵法。”
您可以查看'java.util.Collections'类。它包含一堆有用的方法,包括排序列表的工具。你还需要学习如何实现一个'Comparator'对象。
编辑:也要仔细考虑你想要排序的内容。按价格排序和按价格排序是有区别的。
我假设这是家庭作业,所以我不会给予你完整的答案,但希望这对你有帮助。
rdrgkggo4#
你不会并行排序两个数组(这是可能的,但不是在Java API中,因此必须由你自己完成),而是从名称和价格信息创建Item对象(在数组或集合中),然后对这个数组/列表进行排序(或使用像TreeSet这样的排序集合)。
为此,您可能需要查看
java.util.Comparator
和java.util.Collections.sort
(或java.util.Arrays.sort
)。uurity8g5#
伪Java代码(使用对象表示,例如(Double)而不是double会更容易,因为我们可以利用现有的compareTo方法,该方法在对象级别实现。
blpfk2vs6#