Hashing

Status
Nicht offen für weitere Antworten.

Wusaa

Aktives Mitglied
Hi,
kann mir bitte jemand bei folgendem codeauszug diese zeile hier mit dem modulo operator erklären?

Code:
int i, index = inputValue % this.numberOfBuckets;

Code:
public void addElement( int inputValue ) throws BucketFull {
    int i, index = inputValue % this.numberOfBuckets;

    for ( i = 0; i < this.numberOfRecords; i++ )
       if ( this.bucket[index][i] == 0 ) break;
       if ( i == this.numberOfRecords ) {
            throw new BucketFull();
       } else
            this.bucket[index][i] = inputValue;
} // addElement
[/quote]
 
S

SlaterB

Gast
Die Variable index erhält den ganzzahligen Wert inputValue modulo this.numberOfBuckets.
 

Ariol

Top Contributor
Das % verhindert einen falschen Wert in index

Normalerweise ist der index = inputValue, aber der index darf auch nicht größer sein als this.numberOfBuckets.

durch das Modulo bekommst du nur Werte < numberOfBuckets als index.

Code:
Bsp. 
1)
numberOfBuckets = 3;
inputValue = 2;
index = 2;

2)
numberOfBuckets = 3;
inputValue = 10;
index = 1;

3)
numberOfBuckets = 4;
inputValue = 10;
index = 2;

Der index darf höchstens numberOfBuckets-1 sein, da Java mit 0 zu Zählen beginnt. Also, wenn du 4 Buckets hast haben diese Indiezes 0,1,2,3.


Hoffe das war verständlich.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben