gpt4 book ai didi

java - 在产品 ID 的内存索引中,按 inventory_count 排序

转载 作者:行者123 更新时间:2023-12-01 16:02:25 24 4
gpt4 key购买 nike

我有一个索引,只要有新数据进入 Web 应用程序,我就需要重新排序。

我的内存中有一个产品列表以及每个产品的 inventoryCount。

我想保留产品 ID 的索引,按库存数量排序。

因此,如果有新订单进来,库存就会被修改,因此我必须更新 Product_inventory 索引。

最快的方法是什么?

我不能为此使用数据库,它必须通过 java 代码全部存储在内存中

最佳答案

您可以使用比较器来维护按库存计数顺序排列的产品 ID 列表。比较器根据给定的产品 ID 查找库存计数,并将其用作比较的基础。

假设你有这门课:

class Product {
int productID;
int inventoryCount;
}

比较器看起来像:

class ProductInventoryComparator implements Comparator<Product> {
public int compare(Product p1, Product p2) {
return p1.inventoryCount-p2.inventoryCount;
}
}

这样,您就可以通过在正确的位置插入元素来保持列表的排序来维护排序的列表。要在列表中查找插入位置,请使用 Collections.binarySearch定位插入点:

ProductInventoryComparator comp = new ProductInventoryComparator();
List<Product> productList = new ArrayList<Product>();
Product p = ...new product to add;
int pos = Collections.binarySearch(productList, comp, p);
if (pos<0) { // not found
productList.add(-pos-1);
}

您提到您需要一个 ProductID 列表,大概是一个整数列表 - 如果可能的话,我建议为上面的 Product 创建一个简单的对象,以避免装箱/拆箱整数值的开销。

关于java - 在产品 ID 的内存索引中,按 inventory_count 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3489697/

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