integers opslaan in een Vector

Getallen en rekenen

In dit voorbeeld willen we een Vector van int's maken. Daar komt heel wat bij kijken

Applet

Programmacode

import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class IntVectorExample extends Applet implements ActionListener {
    Label inLabel, indexLabel, uitLabel;
    TextField invoer;
    TextField index;
    TextField uitvoer;

    Vector vector = new Vector();		    // creëer een vector

    public void init() {    
	inLabel = new Label("Voer meerdere getallen in");  
	invoer = new TextField(10);
	indexLabel = new Label("Welk index wilt u terug");  
	index = new TextField(3);
	uitLabel = new Label("het getal was");  
	uitvoer = new TextField(10);

	add(inLabel);
	add(invoer);
	invoer.addActionListener(this);	
	add(indexLabel);
	add(index);
	index.addActionListener(this);	
	add(uitLabel);
	add(uitvoer);
    }

    public void actionPerformed (ActionEvent e) {
	if (e.getSource() == invoer) {
	    int temp = Integer.parseInt(invoer.getText() );
	    vector.addElement(new Integer(temp) );		// voeg een Integer toe
	    invoer.setText("");  // clear invoer
	}
	else if (e.getSource() == index) {
	    int i = Integer.parseInt(index.getText() );
	    if (i > vector.size() ) {
		showStatus("te groot")
		return;             
	    }     
	    Integer temp = (Integer)vector.elementAt(i); // haal het eerste element; typecast van Object naar Integer
	    int c = temp.intValue();		     // conversie van Integer naar int
	    uitvoer.setText("" + c);
	}
    }
}

Uitleg

Een andere toepassing van de Integer klasse in de opslag in een Vector, Hashtable, o.i.d.. Deze containerklassen kunnen alleen objecten bevatten. Dus als je een Vector van int 's wil maken dan moeten er heel wat keren geconverteerd worden.

Bij het invoeren in de vector moet de int worden omgezet in een Integer klasse. Hiervoor wordt de constructor gebruikt.

Bij het ophalen van een getal uit de vector zijn een tweetal conversie nodig. De methode elementAt() geeft een Object terug. Deze moet eerst naar een Integer getypecast worden. Om vervolgens de Integer te converteren naar een int met de methode intValue();

In dit voorbeeld wordt het dan verkregen getallen impliciet weer omgezet naar een String in de methode setText(). Dit had sneller gekund de Integer klasse heeft ook een toString() methode die de String teruggeeft. Het programmafragment wordt dan:

Integer temp = (Integer)vector.elementAt(i); 
uitvoer.setText(temp);
copyright ® Little World 1998