ArrayList 计数相等的对象

我有一个 ProductsController 类来处理数据库:


ProductsController productsController = new ProductsController();

我创建了一个新的 ArrayList 并添加了一些具有相同信息的产品对象:


Product p1 = productsController.findOneById(1); //p1.getName() = "Analgin"

Product p2 = productsController.findOneById(1); //p2.getName() = "Analgin"

Product p3 = productsController.findOneById(1); //p3.getName() = "Analgin"

Product p4 = productsController.findOneById(1); //p4.getName() = "Analgin"

Product p5 = productsController.findOneById(2); //p5.getName() = "Pikovid"

Product p6 = productsController.findOneById(2); //p6.getName() = "Pikovid"

Product p7 = productsController.findOneById(3); //p7.getName() = "Bolnol"

List<Product> productsList = new ArrayList<>();

如何为以下输出计算 ArrayList 中的相同元素:

  1. 4 安乃近

  2. 2 皮科维德

  3. 1 波尔诺尔


拉丁的传说
浏览 142回答 2
2回答

www说

我看到你已经实现了equals和hashCode,所以构建这样的映射就足够了:HashMap <String, Product> productsByName = new HashMap <>();productsByName.put(product1.getName(), product1);productsByName.put(product2.getName(), product2);// add all the products并且这张地图已经包含了这样的信息,通过给定名称查询产品列表就足够了,例如:List <Product> analginProducts = productsByName.get("Analgin");
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java