如何查找arraylist中不同项目的总数。

我做了一些搜索,但我找不到有效的解决方案。 我有一个arylylist存储字符串,如口香糖,袜子,OJ,狗粮……

我无法迭代列表以确定不同类型的项目的总数。

即。

ArrayList Store = new ArrayList(); this.Store.add("Gum"); this.Store.add("Gum"); this.Store.add("Socks"); this.Store.add("Candy"); 

该列表共有4个项目,但只有三种不同的项目(Gum,Sucks,Candy)。

我如何设计一种计算3的方法?

Bhesh Gurung说的是什么,但在代码中:

 int numUnique = new HashSet(Store).size(); 

如果你实际拥有的是StoreItems并且需要通过getName()那么我会这样做

 Set itemNames = new HashSet(); for (StoreItem item : Store) itemNames.add(item.getName()); int numUnique = itemNames.size(); 

使用SetHashSet ),其大小将为您提供所需的内容。

这看起来像是一个作业…所以,如果你不理解上面提出的HashSet解决方案(或者用HashMap来做同样的事情),那么考虑做这样的事情:

创建一个新的ArrayList

获取一个元素并检查它是否存在于新的ArrayList中

如果它存在于新的ArrayList中,则不执行任何操作。 否则添加它。

在检查ArrayList的最后一个元素之前,请执行此操作。

然后,新数组列表的大小应该是您要查找的数字。

您可以使用lastIndexOf方法并循环遍历arraylist。

 char count=0; for(char i=0; i 

测试。