统计我的数组列表中的项目数量
我想计算我的数组中的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)方法。 你只需要遍历整个列表来进行求和。