Questão sobre conjunto de números negativos

[b]14.2) Crie uma classe ConjuntosInteirosNegativos. Cada objeto da classe pode armazenar inteiros no
intervalo de 0 a -100 (Números Negativos). O conjunto (armazenamento) dos números inteiros negativos
deve ser representado internamente como String. O elemento da String a.substring(i,i+1) será ?V? se o
inteiro -i estiver no conjunto. O elemento da String a.substring(j,j+1) será ?F? se o inteiro -j não estiver no
conjunto. Para resolver este problema, siga os procedimentos abaixo:
a) Crie, no mínimo, dois construtores onde seja possível inicializar um objeto da referida classe das
seguintes maneiras:
➢ Uma String cheia ?V? ou ?F?, ou seja, que receba um parâmetro boolean que inicialize os
valores da referida String de acordo com o parâmetro passado.
➢ Uma String inicializado de acordo com a quantidade de paramêtros passados pelo usuário.
[Dica: utilize um array de inteiros como parâmetro do construtor]
b) Forneça os seguintes métodos públicos:
➢ ?intersectionOfIntegersSets? que cria um terceiro conjunto que é a interseção teórica de dois
conjuntos existentes, ou seja, um elemento do terceiro conjunto será configurado como true se
esse elemento for true em ambos os conjuntos existentes. Caso contrário, o elemento do
terceiro conjunto é configurado como false.
➢ ?unionOfIntegersSets? que cria um terceiro conjunto que é a união teórica de dois conjuntos
existentes, ou seja, um elemento do terceiro conjunto será configurado como true se esse
elemento for true em qualquer um dos conjuntos existentes ou em ambos. Caso contrário, o
elemento do terceiro conjunto é configurado como false.
➢ ?isEqualTo? que determina se dois conjuntos são iguais.
➢ ?insertElement? para inserir um novo inteiro -k em um conjunto configurando
a.substring(k,k+1) como ?V? .
➢ ?deleteElement? para remover um novo inteiro -k em um conjunto
configurando a.substring(k,k+1) como ?F? .
➢ ?toString? para imprimir os números armazenados.
14.3)Escreva uma outra classe ConjuntoInteirosTeste que contenha o método ?main? para testar as duas
classes desenvolvidas anteriormente. Instancie no mínimo um objeto de cada uma das classes acima e faça
uso de todos os métodos públicos implementados.

LOGO ABAIXO TA OQUE JA CONSEGUIR FAZER

[/b]
public class CINN {
private int TAMANHO = 101;
private String conjunto;

private char[] inicializaConjunto(char c) {
	char valores[] = new char[TAMANHO];
	
	for(int i = 0; i < TAMANHO; i++){
		valores[i] = c;
	}
	
	return valores;			
}

private CINN(char[] valores){
	conjunto = new String(valores);
}

public CINN(boolean cheio) {
	if(cheio){
		conjunto = new String(inicializaConjunto('V'));
	}else{
		conjunto = new String(inicializaConjunto('F'));
	}
}

public CINN(int[] numeros) {
	char vetor[] = inicializaConjunto('F');
	
	for(int i = 0; i < numeros.length; i++){
		int indice = numeros[i];
		
		if(indice >= 0 && indice < TAMANHO){
			vetor[indice] = 'V';
		}
	}
	
	conjunto = new String(vetor);
}

public void insereElemento(int numero) {
	char vetor[] = conjunto.toCharArray();
	
	if(numero >= 0 && numero < TAMANHO){
		vetor[numero] = 'V';
	}
	
	conjunto = new String(vetor);
}

public void apagaElemento(int numero) {
	char vetor[] = conjunto.toCharArray();
	
	if(numero >= 0 && numero < TAMANHO){
		vetor[numero] = 'F';
	}
	
	conjunto = new String(vetor);
}

@Override
public boolean equals(Object obj) {
	CINN conj = (CINN)obj;
	return this.conjunto.equals(conj.conjunto);
}

public CINN uniao(CINN conj){
	char novo[] = inicializaConjunto('F');
	
	for(int i = 0; i < TAMANHO; i++){
		
		char j = this.conjunto.charAt(i);
		char k = conj.conjunto.charAt(i);
		
		if(j == 'V' || k == 'V'){
			novo[i] = 'V';
		}
	}
	
	return new CINN(novo);
}

public CINN intersecao(CINN conj){
	char novo[] = inicializaConjunto('F');
	
	for(int i = 0; i < TAMANHO; i++){
		
		char j = this.conjunto.charAt(i);
		char k = conj.conjunto.charAt(i);
		
		if(j == 'V' && k == 'V'){
			novo[i] = 'V';
		}
	}
	
	return new CINN(novo);
}

public String toString(){
	StringBuilder saida = new StringBuilder("{");
			
	for(int i = 0; i < TAMANHO; i++){
		if(this.conjunto.charAt(i) == 'V'){
			saida.append(i + ", "); 
		}
	}
			
	if(saida.length() > 2){
		saida.delete(saida.length() - 2, saida.length());
	}

	saida.append("}");
	
	return saida.toString();
}

}