? Java ansøgninger modelkode komponenter som objekter med hvert objekt har et ansvarsområde . Objekter giver metoder til at udføre deres opgaver. Nogle metoder i Java bliver fulgt af alle mulige genstande, herunder strenge. Java rammer giver udviklere mulighed for at anvende visse typer af datalagring struktur , hvoraf nogle benytter hash - kodeværdier at gemme elementer . En hash - kode værdi bruger en kode til at henvise til et bestemt objekt, tillader indsamling klassen til at gennemføre effektive metoder til lagring af flere objekter i programmet . Java-kode kan beregne hash - kodeværdier for alle genstande, herunder strenge, som er uforanderlige. String Content
String variabler i Java-programmer er objekter af String klassen , lagring sekvenser af teksttegn. Dette kan være forvirrende , fordi programmer opretter string variablerne med samme type struktur, som anvendes primitive typen variabler såsom tal . Følgende kodeeksempel viser at skabe en streng variabel : String name = "John" ,
Programmet kan udføre metoder String klassen på denne variabel , hvoraf nogle indebærer ændre teksten indhold. Metoder, der ændrer indholdet af en streng normalt returnere en ny streng , snarere end at ændre den eksisterende streng . Dette er fordi strengene er uforanderlige , hvilket betyder, at når en streng variabel er oprettet, kan dens indhold ikke ændres. Programmer, hvor indholdet af en streng synes at blive ændret , er faktisk at skabe nye strenge til at erstatte eksisterende.
HashCode Function
Alle objekter i Java giver " hashCode "-funktion. Dette er fordi alle Java-klasser arver fra superklassen Object , som giver " hashCode "-metoden. Følgende kodeeksempel viser kalder metoden på String variabel : name.hashCode ();
Calling denne metode medfører Java til at generere en hash - kode værdi for strengen angivne variabel. Oprettelse af en hash - kode værdi for en streng objekt involverer den samme proces , som du ville bruge til ethvert objekt .
På
" hashCode " metoden resulterer i en heltalsværdi , der repræsenterer den pågældende genstand . Dette nummer giver Java klasser til at optimere på effektivitet , når opbevaring dataværdier , især i forbindelse med HashMap klasse eller andre relaterede samlinger klasser . I de fleste tilfælde har en Java -programmør ikke behøver at bekymre sig om detaljerne i de tal, der anvendes som hash - koder til elementer såsom strenge, da de samlinger klasser håndtere denne detalje.
Ligestilling
nær
resultatet af kalde " hashCode " på to elementer, der er lig bør være det samme nummer . For eksempel bør følgende to string variabler generere den samme hash - kode værdi : String someName = "John" , String otherName = "John" ,
p Hvis to objekter returnerer et sandt resultat, når der anvendes inden for lig metode, så Java anser dem for at være lige, i hvilket tilfælde de skulle resultere i den samme hash - kode. For eksempel vil følgende kode resultere i en sand værdi : boolean areEqual = someName.equals ( otherName )
p Det er typisk tilfældet , at hvis to strenge ikke er ens , vil de generere forskellige hash - kodeværdier , men dette er ikke garanteret. (Se Referencer 1 , 2, 3 )