Sobes.tech
Junior — Middle

Чӣ гуна метавон дар рӯйхати бе тартиб, бо истифода аз структураҳои додаҳо мисли HashSet ё HashMap барои бартараф кардани такроршавандагон тавассути калидҳои беназир, онҳоро автоматӣ тоза кард?

sobes.tech AI

Ҷавоб аз AI

Барои бартараф кардани элементҳои такрорӣ аз рӯйхати бе тартиб дар Java, шумо метавонед аз хусусиятҳои структураҳои додаҳои HashSet ё HashMap истифода баред, ки барои нигоҳ доштани калидҳои беназир истифода мешаванд.

  • HashSet танҳо элементҳои беназирро нигоҳ медорад. Вақте ки такроршавандаҳо илова карда мешаванд, онҳо автоматӣ игнор карда мешаванд.
  • HashMap метавонад истифода шавад, агар шумо хоҳед, ки ҷуфтҳои калид-арзишро нигоҳ доред, ки дар он калидҳо беназир мебошанд.

Масалан, барои хориҷ кардани такроршавандаҳо аз рӯйхат бо истифода аз HashSet:

import java.util.*;

List<String> рӯйхатиТакрорӣ = Arrays.asList("манго", "банан", "манго", "анор", "банан");

// Создайте HashSet аз рӯйхат — такроршавандаҳо автоматӣ хориҷ мешаванд
Set<String> маҷмӯъ = new HashSet<>(рӯйхатиТакрорӣ);

// Агар ба рӯйхати бе такроршавандаҳо ниёз дошта бошед
List<String> рӯйхатиБеТакрор = new ArrayList<>(маҷмӯъ);

System.out.println(рӯйхатиБеТакрор);

Агар хоҳед, ки тартиби элементҳоро нигоҳ доред, метавонед LinkedHashSet истифода баред:

Set<String> linkedHashSet = new LinkedHashSet<>(рӯйхатиТакрорӣ);
List<String> рӯйхатиТартибдодашуда = new ArrayList<>(linkedHashSet);

Тавре ки мебинед, HashSet ва HashMap имкон медиҳанд, ки такроршавандаҳоро самаранок бо нигоҳ доштани калидҳои беназир бартараф кунед.