|
|
Postitatud 2025-10-20 10:02:53
|
|
|
|

.NET 6 tutvustab uut kollektsioonitüüpi, PriorityQueue, mis, nagu nimigi ütleb, lisab tavalise järjekorra peale prioriteeditoe. Märkus: Ta onMitte-keerme-ohutu, pead pöörama tähelepanu niidi ohutusele.
Allikas:Hüperlingi sisselogimine on nähtav.
Alusta
Vaatame lihtsat kasutusnäidet:
Näidisväljund:
Näete, et väljundi järjekord on vastupidine meie lisatud järjekorrale, PriorityQueue algab dequeue'i puhul väikseima prioriteediga, mida väiksem on väärtus, seda kõrgem prioriteet, seda kõrgem prioriteet, seda kõrgem on prioriteet, seda kõrgem on väljund, kui tahame esmalt maksimaalset väljundit, kas see on okei? Vastus on jah, aga peame määratlema oma prioriteedivõrdluse reeglid, võite viidata järgmisele näitele
Stseene
Automaatse sorteerimise puhul prioriteediga võime kaaluda PriorityQueue kasutamist, kui vajame automaatset sorteerimist
Sõnumijärjekord
PriorityQueue abil saab rakendada prioriteedisõnumi järjekorra, mis võimaldab kasutajatel määrata sõnumi prioriteedi sõnumi saatmisel ning see prioriteediks on ka tarbimisel.
Ülaltoodud näites määrame vaikimisi prioriteedi tüübiks int ja ühendame mõned sõnumid järjekorda, kuid sageli on sõnumeid palju ning võib esineda olukordi sama prioriteediga, mida saame kasutadaaeg ja intellekt kui föderatiivse prioriteediga tüüpVõid viidata järgmisele näitele:
Väljundi näide on järgmine:
Ülaltoodud tulemustest on näha, et prioriteedi puhul töötleme sõnumeid esmalt lühema ajaga või kohandame sorteerimismeetodit vastavalt oma vajadustele ning kohandame prioriteetide võrdlusloogikat.
Auaste
PriorityQueue'd saab kasutada ka paljudes edetabelirakendustes, näiteks õpilaste soorituse hindamisel
Vaata allolevat näidiskoodi:
Ülaltoodud nimekiri on hinnete nimekiri, kirjuta lihtsalt mõned testiandmed, PriorityQueue UnorderedItems kaudu saame andmed enne sorteerimist ning see on ka järjekord, milles me järjekorda liitume (Enqueue). vaikimisi võrdlus on väike esimene, st madalaim skoor on esimene, seejärel tahame sorteerida suurimast väikseimani, peame kohandama võrdlusmeetodit.
Ülaltoodud High2LowComparer on kohandatud võrdlus, mis on tegelikult võrdlustulemuse pöördvõrdne ning kood on järgmine:
Ülaltoodud väljund on järgmine:
Rohkem
Redises on olemas zset(sortedSet) tüüpi andmed, mis suudavad sarnaseid asju teha, kuid zset ja PriorityQueue vahel on siiski mõningaid erinevusi, zset on kogumik, mis automaatselt dedlikaatseerub, samal ajal kui PriorityQueue on endiselt Queue ei dedlikeerita, zset saab muuta vastava elemendi prioriteeti (skoori), kuid PriorityQueue Praegu ei toetata elemendi vastava prioriteedi muutmist
PriorityQueue võib lahendada mõningaid meie probleeme, kuid selle kasutamisel tasub meeles pidada mõningaid asju:
- Esiteks, kui prioriteet on sama, võib väljundi järjekord olla erinev, mida määrab sisemine rakendusalgoritm, ning järjekorda ei saa rangelt garanteerida
- PriorityQueue ei ole lõime-turvaline ning tuleb märkida teemade ohutuse probleeme
- Peek meetod PriorityQueue's toob ainult järgmise elemendi järjekorrast, kuid ei eemalda seda järjekorrast
(Lõpp) |
Eelmine:Douyin Mall crawler analüüs, positsioneerimine 6 jumalat, riskikontrolli analüüs, nüüd peaks olema 7 jumalat X-PerseusJärgmine:Lingid EBPF-iga seotud teadmistele
|