gpt4 book ai didi

java - 如何按价格和名称对商品进行排序?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:02:27 25 4
gpt4 key购买 nike

所以我有一个关于下一步该做什么的问题。我正在研究这个项目,要求是。

飞翼咖啡店

本地一家咖啡店向顾客出售如下所示的各种不同商品。您需要编写一个 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 的信息。
  • 每个实例变量的获取和设置方法

这就是我目前的全部。我很难思考如何对数组进行排序。因此,如果我对 2 个不同的数组进行排序,我该如何使它们保持正确的顺序。例如 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;
}
}

最佳答案

更正了 Item 类定义。

您需要将参数分配给字段(在 OP 中,您已将字段分配给参数)

使用 Comparator 对象参数实现对单个字段的排序。

   List<Item> items=new ArrayList<Item>();
items.add(new Item("A",1.2));
items.add(new Item("Z",10.2));
items.add(new Item("B",2.3));
items.add(new Item("Y",5.4));
items.add(new Item("B",1.3));


java.util.Collections.sort(items,new Comparator<Item>()
{
public int compare(Item a,Item b)
{
if(a.getName().compareTo(b.getName())>0)
return 1;
else
if(a.getName().compareTo(b.getName())<0)
return -1;
else
return 0;
}
public boolean equals(Object a)
{
return false;
}
});

关于java - 如何按价格和名称对商品进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4981924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com