Een deel van de kracht van arrays is dat je iets heel simpel en snel kan opzoeken. In deze paragraaf gaan we een voorbeeld bekijken waarbij we zoeken op een naam en de overeenkomstige punten terugkrijgen
Gegeven:
Punten: 7, 8.5, 9, 4.5, 6.5, 5, 8.5, 6, 7.5, 5.5
Namen: "Tom", "Stijn", "An", "Ilse", "Daan", "Lien", "Wouter", "Jens", "Eva", "Fleur"
public class Punten extends javax.swing.JFrame {
double[] punten = {7, 8.5, 9, 4.5, 6.5, 5, 8.5, 6, 7.5, 5.5};
String[] namen = {"Tom", "Stijn", "An", "Ilse", "Daan", "Lien", "Wouter", "Jens", "Eva", "Fleur"};
private void btnZoekPuntenActionPerformed(java.awt.event.ActionEvent evt) {
boolean gevonden = false;
for (int i = 0; i < namen.length ; i ++) {
if (namen[i].toLowerCase().equals(txtNaam.getText().toLowerCase())){
txtPunten.setText(Double.toString(punten[i]));
gevonden = true;
break;
}
}
if (!gevonden){
JOptionPane.showMessageDialog(null, "De naam werd niet gevonden");
txtPunten.setText("");
}
}
}
Een simpele en effectieve manier om de namen te doorzoeken is om bij het begin te beginnen en van het ene element naar het andere te gaan, totdat we de naam gevonden hebben dat we zochten. De naam die we zoeken, hoeft echter niet in de namenlijst te staan en ook die situatie moeten we kunnen hanteren. Het zoeken gaat dus door, ofwel tot we vinden waar we naar zoeken ofwel tot we aan het einde van de elementen gekomen zijn. Eventueel kan je een speciaal element aan de array toevoegen dat het einde van de gegevens aangeeft.
Deze manier van zoeken heet serial search. Deze begint bij het begin van de array met index nul, zoekt item voor item af, en verhoogt de index steeds met 1. De zoektocht gaat door totdat of het gewenste item gevonden is of het einde van de array bereikt werd.
Deze manier van zoeken stelt geen eisen over de volgorde van de items in de tabel: deze kunnen in willekeurige volgorde staan. Andere zoektechnieken kunnen bijvoorbeeld de alfabetische volgorde van items in een tabel benutten.
Informatie (zoals een woordenboek) staat gewoonlijk opgeslagen in een bestand in plaats van in een array, omdat gegevens in een bestand minder vluchtig zijn. Gewoonlijk wordt dan ook het bestand en niet de array doorzocht naar de gewenste informatie. Een alternatief is dat het bestand in het geheugen gezet wordt, in een array wordt opgeslagen, en vervolgens wordt doorzocht op de manier die we hiervoor beschreven hebben.