gpt4 book ai didi

java - 关于排序数组列表

转载 作者:行者123 更新时间:2023-11-29 05:35:09 26 4
gpt4 key购买 nike

我试图确保我在 productDatabase 中插入的对象尚未插入,并且我使用方法 sortData 对数组列表进行排序,但没有在方法 sortData 中使用任何比较器

public class Application {

public static void main(String[] args) {

Product p = new Product(15,"test",3.45);
Product p2 = new Product(15,"test",3.45);
Product p3 = new Product(4716,"koukouroukou",1.25);
Product p4 = new Product(6002,"bananofatsoula",0.60);

ProductDatabase productDatabase = new ProductDatabase();

productDatabase.addProduct(p);
productDatabase.addProduct(p2);
productDatabase.addProduct(p3);
productDatabase.addProduct(p4);

productDatabase.printDatabase();

productDatabase.sortDatabase();
productDatabase.printDatabase();

}
public class Product {

private int code;
private String name;
private double price;

public Product(int code, String name, double price){
this.code = code;
this.name = name;
this.price = price;
}

public int getCode() {
return code;
}

public void setCode(int code) {
this.code = code;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public double getPrice() {
return price;
}

public void setPrice(double price) {
this.price = price;
}

public String toString(){
return code+" , description: "+name+", price: "+price;
}

public int hashCode(){
return 31 * code + name.hashCode();
}

public boolean equals(Object o){
Product other = (Product)o;
if (this.code == other.code){
return true;
}
else{
return false;
}
}
import java.util.ArrayList;

import java.util.Collection;


public class ProductDatabase {

private ArrayList<Product> productDatabase;

public ProductDatabase(){
productDatabase = new ArrayList<Product>();
}

public void addProduct(Product p){
if(!productDatabase.contains(p)){
productDatabase.add(p);
}
}

public void printDatabase(){
for(Product product : productDatabase){
System.out.println(product);
}
}

public void sortDatabase(){

// ????????????????????????????????????????????????????????????

所以我的问题是

  1. contain(p) 是否足以确保同一产品不在列表中?
  2. 如果产品具有相同的代码和名称,则它们是相同的。如果不是我必须做什么?
  3. 我如何使用 ProductDatabase 类中的比较器对我的 Withous 进行排序?也许通过产品中的新方法?
  4. productDatabase 是否扩展了 Product???

最佳答案

您可以返回 boolean 值以了解产品是否已经存在。如果不添加另一个代码标识,代码用于确保产品的差异化。Product 实例将只携带一个 Product 的信息,因此 Sort 必须在具有所有产品记录的类的成员函数中完成,而不仅仅是一个。没有 product_database 不扩展 product 。它是产品类别的日志,而不是零件。

关于java - 关于排序数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19770899/

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