내 배열 목록의 항목 수 계산
내 배열의 항목 ID 수를 계산하고 싶습니다. 코드에 이것을 추가하는 방법에 대한 예제를 얻을 수 있습니까? 아래 코드;
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();
그러나 고유 항목 ID (@pst 당)의 수를 계산하려는 경우 집합을 사용하여 추적해야합니다.
Set<String> itemIds = new HashSet<String>();
//...
itemId = p.getItemId();
itemIds.add(itemId);
//... later ...
int uniqueItemIdCount = itemIds.size();
배열의 항목 ID 수를 계산하려고합니다. 간단히 사용 :
int counter=list.size();
코드가 적을수록 효율성이 높아집니다. 조상의 바퀴를 돌리지 마십시오 ...
루프 외부에서 int를 만듭니다.
int numberOfItemIds = 0;
for (int i = 0; i < key.length; i++) {
그런 다음 루프에서 증가시킵니다.
itemId = p.getItemId();
numberOfItemIds++;
Mark Peters 솔루션에 추가 할 유일한 것은 ArrayList를 반복 할 필요가 없다는 것입니다. Set에서 addAll (Collection) 메서드를 사용할 수 있어야합니다. 요약을 수행하려면 전체 목록을 반복하기 만하면됩니다.
You can get the number of elements in the list by calling list.size()
, however some of the elements may be duplicates or null
(if your list implementation allows null
).
If you want the number of unique items and your items implement equals
and hashCode
correctly you can put them all in a set and call size
on that, like this:
new HashSet<>(list).size()
If you want the number of items with a distinct itemId
you can do this:
list.stream().map(i -> i.itemId).distinct().count()
Assuming that the type of itemId
correctly implements equals
and hashCode
(which String
in the question does, unless you want to do something like ignore case, in which case you could do map(i -> i.itemId.toLowerCase())
).
You may need to handle null
elements by either filtering them before the call to map
: filter(Objects::nonNull)
or by providing a default itemId for them in the map
call: map(i -> i == null ? null : i.itemId)
.
참고URL : https://stackoverflow.com/questions/3704194/count-the-number-of-items-in-my-array-list
'Program Tip' 카테고리의 다른 글
기존 테이블에 고유 키를 추가하는 방법 (비 고유 행 포함) (0) | 2020.12.14 |
---|---|
Visual Studio의 빌드 후 이벤트 명령 줄에서 .bat 파일을 실행할 수 있습니까? (0) | 2020.12.14 |
WPF의 dataGridCells에 패딩 설정 (0) | 2020.12.14 |
RSpec 테스트 후 ActionMailer :: Base.deliveries 지우기 (0) | 2020.12.14 |
Android : APK가 대상으로하는 플랫폼 버전을 찾는 방법은 무엇입니까? (0) | 2020.12.14 |