统计我的数组列表中的项目数量

我想计算我的数组中的itemid的数量,我可以得到一个如何将这个添加到我的代码的例子。 代码如下

if (value != null && !value.isEmpty()) { Set set = value.keySet(); Object[] key = set.toArray(); Arrays.sort(key); for (int i = 0; i < key.length; i++) { ArrayList list = (ArrayList) value.get((String) key[i]); if (list != null && !list.isEmpty()) { Iterator iter = list.iterator(); double itemValue = 0; String itemId = ""; while (iter.hasNext()) { Propertyunbuf p = (Propertyunbuf) iter.next(); if (p != null) { itemValue = itemValue + p.getItemValue().doubleValue(); itemId = p.getItemId(); } buf2.append(NL); buf2.append(" " + itemId); } double amount = itemValue; totalAmount += amount; } } } 

您列表中itemId的数量将与列表中元素的数量相同:

 int itemCount = list.size(); 

但是,如果您正在计算唯一itemIds的数量(per @ pst),那么您应该使用一组来跟踪它们。

 Set<String> itemIds = new HashSet<String>(); //... itemId = p.getItemId(); itemIds.add(itemId); //... later ... int uniqueItemIdCount = itemIds.size(); 

你想计算你的数组中的itemid的数量。 只需使用:

 int counter=list.size(); 

代码越less,效率越高。 不要跑祖先的轮子

在你的循环之外创build一个int:

 int numberOfItemIds = 0; for (int i = 0; i < key.length; i++) { 

然后在循环中增加它:

 itemId = p.getItemId(); numberOfItemIds++; 

我唯一要添加到Mark Peters解决scheme的是你不需要迭代ArrayList – 你应该能够使用Set上的addAll(Collection)方法。 你只需要遍历整个列表来进行求和。