? Java-program modell kodkomponenter som objekt , där varje objekt har ett ansvarsområde . Objekt tillhandahålla metoder för att utföra sina uppgifter . Vissa metoder i Java genomförs av alla möjliga föremål, inklusive strängar . Java ramverket tillåter utvecklare att använda vissa typer av datalagring struktur , varav vissa använder hash - kod värden för att lagra objekt . En hash - kodvärdet använder en kod för att hänvisa till ett visst objekt , vilket gör att insamlingen klassen för att implementera effektiva metoder för lagring av flera objekt inom programmet . Java-kod kan beräkna hash - kod värden för alla objekt, inklusive strängar , som är oföränderliga . String Content
String-variabler i Java-program är objekt av klassen String , lagra sekvenser av bokstäver. Detta kan vara förvirrande , eftersom programmen skapar strängvariabler använder samma typ av struktur som används för primitiv typ variabler såsom siffror . I följande exempelkod visas hur du skapar en sträng variabel : String namn = " John " ,
Programmet kan utföra metoder i klassen String på denna variabel , varav några involverar ändra textinnehåll . Metoder som ändrar innehållet i en sträng återgå normalt en ny sträng , i stället för att störa existerande sträng. Detta beror på att strängarna är oföränderliga , vilket innebär att när en sträng variabel skapas , kan dess innehåll inte ändras . Program där innehållet i en sträng verkar ändras faktiskt skapar nya strängar att ersätta befintliga. Addera hashCode Funktion
Alla objekt i Java ge " hashCode "-funktion. Detta beror på att alla Java-klasser ärver från superklassen objekt, som ger den " hashCode "-metoden. Följande exempelkod visar anropar metoden på String-variabel : name.hashCode ( ) ;
här metoden anropas Java för att generera en hash - kod värde för den angivna strängen variabeln . Skapa en hash - kod värde för en sträng objektet innefattar samma process som du skulle använda för något objekt .
Resultat
" hashCode " metoden resulterar i ett heltal som representerar föremålet i fråga . Detta nummer gör Java-klasser för att optimera på effektivitet vid lagring datavärden , särskilt i samband med HashMap klass eller andra samlingar klasser . I de flesta fall behöver en Java-programmerare inte oroa detaljerna i de siffror som används som hash - koder för exempelvis stråkar , eftersom de samlingar klasserna hantera denna detalj .
Jämlikhet
resultatet av att anropa " hashCode " på två punkter som är lika ska vara samma nummer . Till exempel bör följande två strängvariabler generera samma hash - kod value: String someName = "John "; String otherName = "John ";
p Om två objekt returnera ett sant resultat när den används inom lika metoden , då Java anser dem vara lika , i vilket fall de skall resultera i samma hash - kod . Till exempel skulle följande kod resulterar i ett verkligt värde : boolean areEqual = someName.equals ( otherName ) ;
p Det är oftast så att om två strängar är inte lika , kommer de att generera olika hash - kod värden , men detta kan inte garanteras. ( Se referenser 1 , 2 , 3 ) katalog