我正在尝试制作一个java应用程序,它允许用户为超市制作目录,然后根据用户输入的代码按升序显示用户输入到目录中的所有产品。I搜索过它并发现我可以使用一种名为“sort”的方法,但问题是我尝试实现它但它对我不起作用,而且我不知道将它放在我的代码中的哪里。
我编写的代码:2个类1类:
public class Catalog {
private String description ;
private String code ;
private double price ;
private String phrase ;
int counter = 0;
private Catalog [] list = new Catalog [100];
public Catalog (String productDescription , String productCode , double productPrice , String productPhrase)
{
description = productDescription;
code = productCode;
price = productPrice;
phrase = productPhrase;
}
public void setDescription (String productDescription)
{
description = productDescription;
}
public String getDescription ()
{
return description;
}
public void setCode (String productCode)
{
code = productCode;
}
public String getCode ()
{
return code;
}
public void setPrice (double productPrice)
{
price = productPrice;
}
public double getPrice ()
{
return price;
}
public void setPhrase (String productPhrase)
{
phrase = productPhrase;
}
public String getPhrase ()
{
return phrase;
}
第 2 类:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class CatalogTest {
public static void main(String[] args) throws IOException {
String name = null;
String code = null;
double price = 0.0;
String phrase = null;
BufferedReader input = new BufferedReader (new InputStreamReader (System.in));
Catalog product = new Catalog(name,code,price,phrase);
Catalog [] productsArray = new Catalog [100];
for (int i = 0 ; i < productsArray.length ; i ++)
{
System.out.println("Enter product description (or # to stop): ");
name = input.readLine();
if (!("#".equals(name)))
{
productsArray [i] = product;
product.setDescription(name);
System.out.println("Enter product code: ");
code = input.readLine();
productsArray [i] = product;
product.setCode(code);
System.out.println("Enter product unit price: ");
price = Double.parseDouble(input.readLine());
productsArray [i] = product;
product.setPrice(price);
System.out.println("Enter product unit phrase: ");
phrase = input.readLine();
productsArray [i] = product;
product.setPhrase(phrase);
productsArray [i] = new Catalog (name,code,price,phrase);
}
else
{
System.out.println("Your Catalog:");
for (int j = 0; j < productsArray.length; j++)
{
if(productsArray[j]!=null)
{
System.out.printf("%s, %s,$%.2f %s,",
productsArray[j].getCode(),
productsArray[j].getDescription(),
productsArray[j].getPrice(),
productsArray[j].getPhrase());
System.out.println();
}
}
break;
}
}
}
}
请问有什么帮助吗?
最佳答案
您可以编写自己的比较器,然后调用 Arrays.sort 方法:
public static class MyComparator implements Comparator<Catalog> {
@Override
public int compare( Catalog first, Catalog second ) {
return first.getCode().compareTo( second.getCode() );
}
}
Arrays.sort( productsArray, new MyComparator() );
关于java - 在java中对对象数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14716900/