Voglio scrivere un metodo che, dato un array di stringhe ordinato, e passando come parametro al metodo una stringa:
- restituisca -10 se la stringa cercata è presente nell'array
- inserisce la stringa cercata se non è presente nell'array e restituisce la posizione in cui l'ha inserita
- lanci un'eccezzione se l'array è pieno.

Io ho scritto questo ma non va..

codice:
import java.util.*;

public class Array {

	Scanner tast = new Scanner(System.in);

	private String[] elementi;
	private int numElementi;

	public Array(String[] a, int i) {
		elementi = a;
		numElementi = 1;
	}

	public int aggiungiElem(String val) throws IllegalStateException {
		int h = 0;
		while(h < elementi.length) {
			if(elementi[h].equals(val))
				return -1;
			else
				h++;
		}
		int j = 0;
		for(int i = 0; i < numElementi && elementi[i].compareTo(val) < 0; i++)
			j = i + 1;
		for(int i = numElementi; i > j; i--)
			elementi[i] = elementi[i - 1];
		elementi[j] = val;
		return j;
	}
	
}
main
codice:
import java.util.Scanner;

public class TestArray {

	public static void main(String[] args) {

		Scanner tast = new Scanner(System.in);

		String[] a = {"c", "d", "e", "g", "o", "p", "r", "z"};

		Array r = new Array(a, 15);

		try {
			System.out.println("Inserisci una stringa: ");
			String s = tast.nextString();
			a.inserisci(s);
		} catch(IllegalStateException ecc) {
			System.out.println("Array pieno");
		}
}
Grazie