如何查找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();
使用Set
( HashSet
),其大小将为您提供所需的内容。
这看起来像是一个作业…所以,如果你不理解上面提出的HashSet解决方案(或者用HashMap来做同样的事情),那么考虑做这样的事情:
创建一个新的ArrayList
获取一个元素并检查它是否存在于新的ArrayList中
如果它存在于新的ArrayList中,则不执行任何操作。 否则添加它。
在检查ArrayList的最后一个元素之前,请执行此操作。
然后,新数组列表的大小应该是您要查找的数字。
您可以使用lastIndexOf方法并循环遍历arraylist。
char count=0; for(char i=0; i
测试。