Как использовать Hashset / set в сценариях Jmeter BeanShell - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть список идентификаторов в ArrayList, кто-нибудь может мне помочь, как получить количество уникальных идентификаторов из списка.

Предположим, что ArrayList может содержать:

ADD5C9
AA6F39
AA3D0D
AA48C9
8B9D48
63A859
ADD5C9
ADA162
AD9AD5
8B9D48

пожалуйста, найдите код для списка

Спасибо и наилучшими пожеланиями

Ответы [ 3 ]

2 голосов
/ 11 февраля 2020

Добавить все элементы списка в Установить , чтобы удалить все повторяющиеся значения:

Set<String> set = new HashSet<>(theArrayList);
int numberOfUniques = set.size();
1 голос
/ 11 февраля 2020

Имейте в виду, что начиная с JMeter 3.1 вы должны использовать JSR223 Test Elements и Groovy language для сценариев.

В Groovy было бы вполне достаточно вызвать unique() функцию для ArrayList, и она удалит все дубликаты:

def array = ['ADD5C9', 
             'AA6F39',
             'AA3D0D',
             'AA48C9',
             '8B9D48',
             '63A859',
             'ADD5C9',
             'ADA162',
             'AD9AD5',
             '8B9D48']

def unique = array.unique()

unique.each { value -> log.info(value) }

enter image description here

Дополнительная информация: Apache Groovy - Почему и как вы должны его использовать

1 голос
/ 11 февраля 2020

Java -8 + решение

Или, Вы можете использовать Stream::distinct примерно так:

long count = list.stream().distinct().count();
...