List<No> listaNo = new ArrayList();
listaNo.get(i) == primeiro_valor
private void principal() throws FileNotFoundException, IOException {
List<No> listaNo = new ArrayList();
No t = new No();
String aux;
int c = 0, primeiro_valor = 0, segundo_valor = 0;
aux = Op[c];
String[] s = aux.split(" ");
primeiro_valor = Integer.parseInt(s[0]);
segundo_valor = Integer.parseInt(s[1]);
t.ID = primeiro_valor;
while (primeiro_valor != 0 && segundo_valor != 0) {
boolean igual = false, tem = false;
if (primeiro_valor == segundo_valor) {
igual = true;
Escreve(igual, tem, primeiro_valor, segundo_valor);
c++;
aux = Op[c];
s = aux.split(" ");
primeiro_valor = Integer.parseInt(s[0]);
segundo_valor = Integer.parseInt(s[1]);
continue;
}
else{
if(t.apontados.isEmpty()){
t.apontados.add(segundo_valor);
}
else if(!t.apontados.isEmpty()){
for (int i = 0; i < listaNo.size(); i++){
if(listaNo.indexOf(i) == primeiro_valor){
for (int j = 0; j < t.apontados.size(); j++){
if(t.apontados.indexOf(j)==segundo_valor){
Escreve(igual, tem, primeiro_valor, segundo_valor);
GotoInstruction PROXIMO;
}
}
t.apontados.add(segundo_valor);
}
}
}
}
No novo = new No();
novo.ID = primeiro_valor;
novo.apontados.add(segundo_valor);
listaNo.add(novo);
PROXIMO:
c++;
aux = Op[c];
s = aux.split(" ");
primeiro_valor = Integer.parseInt(s[0]);
segundo_valor = Integer.parseInt(s[1]);
}
}
Op[] é uma string contendo os pares ordenados da seguinte maneira
1 1
1 2
1 3
1 4
1 5
1 2 <~~ elemento repetido
0 0 <~~ finaliza
até a parte de conferir se o primeiro_valor == segundo_valor esta ok.
para facilitar na segunda parte que esta dando erro eu quero somente fazer uma comparação e verificar se o elemento que eu vou inserir já não esta inserido.
public class No {
public int ID;
public List apontados;
public No(){
apontados = new ArrayList();
}
}
public class LeEscreveArquivo {
public String[] tarefas;
public String[] Op;
public String[] esq;
public String[] dir;
private int QtdTarefaPrivate;
private int QtdLinhas;
public void Le() throws FileNotFoundException, IOException {
FileReader ordtopin = new FileReader(new File("C:\\Users\\User\\Documents\\NetBeansProjects\\Arquivo\\ordtop.in"));
BufferedReader leitor = new BufferedReader(ordtopin);
String linha = null;
String linha1;
int count = 0;
int opcount = 0;
linha1 = leitor.readLine();
QtdTarefaPrivate = Integer.parseInt(linha1);
VerQuantidadeLinhas();
tarefas = new String[QtdTarefaPrivate];
Op = new String[QtdLinhas];
while (!"0 0".equals(linha)) {
linha = leitor.readLine();
if (count < 12) {
tarefas[count] = linha;
count++;
} else {
Op[opcount] = linha;
opcount++;
}
}
leitor.close();
ordtopin.close();
principal();
} //OK
public void Escreve(boolean igual, boolean tem, int p, int s) throws IOException {
FileWriter ordtoptxt = new FileWriter(new File("C:\\Users\\User\\Documents\\NetBeansProjects\\Arquivo\\ordtop1.txt"), true);
PrintWriter saidatxt = new PrintWriter(ordtoptxt, true);
/*
* int c = 0; int linhas = QtdLinhas; while (linhas != 0) {
* saidatxt.println(Op[c]); c++; linhas--; }
*
*/
if (igual && !tem) {
saidatxt.println("Valor não pode ser igual " + p + " " + s);
}
if (tem && !igual) {
saidatxt.println("Valor já inserido " + p + " " + s);
}
saidatxt.close();
ordtoptxt.close();
System.out.println("Salvo");
} //ok
public void MostraTarefas() {
System.out.println("Tarefas:");
int c = 0;
int QtdTarefa = QtdTarefaPrivate;
while (QtdTarefa != 0) {
System.out.println(tarefas[c]);
c++;
QtdTarefa--;
}
MostraOperações();
} //ok
private void VerQuantidadeLinhas() throws FileNotFoundException, IOException {
FileReader ordtopin = new FileReader(new File("C:\\Users\\User\\Documents\\NetBeansProjects\\Arquivo\\ordtop.in"));
BufferedReader leitor = new BufferedReader(ordtopin);
int v = 0;
String linha = null;
while (!"0 0".equals(linha)) {
linha = leitor.readLine();
v++;
}
QtdLinhas = (v - QtdTarefaPrivate) - 1;
leitor.close();
ordtopin.close();
} //ok
private void MostraOperações() {
System.out.println("Operações:");
int c = 0;
int linhas = QtdLinhas;
while (linhas != 0) {
System.out.println(Op[c]);
c++;
linhas--;
}
} //ok
private void principal() throws FileNotFoundException, IOException {
List<No> listaNo = new ArrayList();
No t = new No();
String aux;
int c = 0, primeiro_valor = 0, segundo_valor = 0;
aux = Op[c];
String[] s = aux.split(" ");
primeiro_valor = Integer.parseInt(s[0]);
segundo_valor = Integer.parseInt(s[1]);
t.ID = primeiro_valor;
while (primeiro_valor != 0 && segundo_valor != 0) {
boolean igual = false, tem = false;
if (primeiro_valor == segundo_valor) {
igual = true;
Escreve(igual, tem, primeiro_valor, segundo_valor);
c++;
aux = Op[c];
s = aux.split(" ");
primeiro_valor = Integer.parseInt(s[0]);
segundo_valor = Integer.parseInt(s[1]);
continue;
}
//daqui para baixo não sei se esta certo
else{
if(t.apontados.isEmpty()){
t.apontados.add(segundo_valor);
}
else if(!t.apontados.isEmpty()){
for (int i = 0; i < listaNo.size(); i++){
if(listaNo.indexOf(i) == primeiro_valor){
for (int j = 0; j < t.apontados.size(); j++){
if(t.apontados.indexOf(j)==segundo_valor){
Escreve(igual, tem, primeiro_valor, segundo_valor);
GotoInstruction PROXIMO;
}
}
t.apontados.add(segundo_valor);
}
}
}
}
No novo = new No();
novo.ID = primeiro_valor;
novo.apontados.add(segundo_valor);
listaNo.add(novo);
PROXIMO:
c++;
aux = Op[c];
s = aux.split(" ");
primeiro_valor = Integer.parseInt(s[0]);
segundo_valor = Integer.parseInt(s[1]);
}
}
}