Silpnoji lentelė

Silpnoji lentelė () – lentelė, kurioje raktą atitinkanti reikšmė saugoma tik tol, kol rakto nesunaikina šiukšlių surinktuvas. Rakto - reikšmės poros buvimas tokioje lentelėje rakto nuo šiukšlių surinkėjo neapsaugo.Silpnoji maišos lentelė (WeakHashMap, Java. Oracle oficiali dokumentacija. 
Silpnoji maišos lentelė (ConditionalWeakTable, C#). Microsoft oficiali dokumentacija. 

Silpnoji lentelė gerai tinka naudojant tokius raktus, kurie, kartą prarasti, negali būti sukurti iš naujo. Nebesant rakto, saugoti jį atitinkančią reikšmę nėra prasmės.

Jei raktą galima sukurti ar tiesiogiai nurodyti iš naujo (pavyzdžiui, naudojant simbolių eilutės tipo raktus), programuotojas turi nepamiršti, jog silpnojoje lentelėje esantis objektas gali iš jos bet kada dingti. Kadangi šiukšlių surinkėjo darbo greitis ribotas, lentelė ir tokiais atvejais naudojama jei rakto reikšmę galima rasti ir kitais, ilgiau užtrunkančiais būdais (pavyzdžiui, susisiekiant su serveriu). Kuomet raktą atitinkančios reikšmės klausiama labai dažnai, surinkėjas tokio rakto iš lentelės pašalinti nespėja. Jei ji reikalinga retai, saugoti lentelėje vis viena netikslinga.

Silpnoji lentelė paprastai realizuojama panaudojant maišos funkciją. Šį duomenų tipą turi Java (nuo Java 1.2), C# (nuo .NET 5.0) ir kai kurios kitos programavimo kalbos.

 Šaltiniai 

Kategorija:Duomenų struktūros