
// Mangd.java


/******************************************************************************
/ Mangd.java demonstrerar hur referens till objekt genom instansvariabel kan 
/ hanteras på säkert sätt.
/
/*****************************************************************************/

public class Mangd
{

	private int[]    e = null;

	// Skapa en lokal "arbetskopia" av vektorn.
	public Mangd (int[] e)
	{
		this.e = new int[e.length];
		for (int i = 0; i< e.length; i++)
			this.e[i] = e[i];
	}
	
	
	public int antalElement ()
	{
		return e.length;
	}
	
	
	// Returnera en kopia av "arbetskopian"
	public int[] getElements ()
	{
		int[]    v = new int[e.length];
		for (int i = 0; i < e.length; i++)
			v[i] = e[i];
			
		return v;
	}
	
	
	public boolean finnsIMangden (int e1)
	{
		boolean    finns = false;
		
		for (int i = 0; i < e.length; i++)
			if (e[i] == e1)
			{
				finns = true;
				break;
			}
		
		return finns;
	}
	
	
	public void laggTill (int e1)
	{
		if (!finnsIMangden (e1))
		{
			int[]    v = new int[e.length + 1];
			for (int i = 0; i < e.length; i++)
				v[i] = e[i];
			v[e.length] = e1;
			
			e = v;
		}
	}
	
	
	public String toString ()
	{
		String    s = "{";
		if (e.length == 0)
			s = s +"}";
		else
		{
			for (int i = 0; i < e.length - 1; i++)
				s = s + e[i] + ", ";
			s = s + e[e.length - 1] + "}";
		}
		
		return s;
	}

}    
    
	
    