Sobes.tech
Junior — Middle

Ինչպե՞ս կարելի է ստանալ միայն եզակի օբյեկտներ տվյալների հոսքից Stream API-ում։

sobes.tech AI

Պատասխան AI-ից

Java Stream API-ում, օբյեկտների եզակիությունը ստանալու համար օգտագործվում է distinct() մեթոդը: Այն վերադարձնում է նոր հոսք, որտեղ վերացվել են կրկնօրինակները equals() և hashCode() մեթոդների հիման վրա:

Օրինակ:

List<String> list = Arrays.asList("խնձոր", "բանան", "խնձոր", "նարինջ");
List<String> uniqueList = list.stream()
    .distinct()
    .collect(Collectors.toList());

System.out.println(uniqueList); // [խնձոր, բանան, նարինջ]

Եթե օբյեկտները բարդ են և անհրաժեշտ է եզակիություն որոշակի դաշտով, կարելի է օգտագործել Collectors.toMap կամ filter օգնությամբ, բայց պարզ դեպքերում distinct()-ը ամենահեշտ միջոցն է։