Versão atual:

Tem um erro no case 2 ,"no sugundo if", aparece esse erro bad operand types for binary operator "<".

É um programa de ordenação de dados! O erro esta nessa linha no segundo case 2 , if (registro[j] < registro[iMenor]){, alguem sabe porque esta acontecendo esse erro ?

package ordenacao;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;

public class Ordenacao {

    public static void main(String[] args) throws IOException {

        System.out.println("############# ARQUIVO TXT ##############");

        System.out.println("");

        /* local do arquivo */

        File arquivo = new File("arquivo.txt");

        StringBuilder conteudo = new StringBuilder();

        BufferedReader reader;

        try {

            reader = new BufferedReader(new FileReader(arquivo));

            String text;

            // repete enquanto existir linhas

            while ((text = reader.readLine()) != null) {

                conteudo.append(text).append(System.getProperty("line.separator"));

            }

            System.out.println(conteudo.toString());

            reader.close();

        } catch (FileNotFoundException e) {

            System.out.println("Arquivo não encontrado!");

        } catch (IOException e) {

            System.out.println("Falha ao tentar ler arquivo! " + e.getMessage());
        }
        System.out.println("###############################################");
        System.out.println("");

        /* armazenar o arquivo em arrayList */

        List<String[]> lista = new ArrayList<>();

        FileReader ent = new FileReader("arquivo.txt");

        BufferedReader br = new BufferedReader(ent);

        String linha;

        while ((linha = br.readLine()) != null) {

            String[] registro = linha.split(" ");

            lista.add(registro);

            // Menu

            int opção;

            System.out.println("============================");

            System.out.println("|          OPÇÃO           |")
;
            System.out.println("============================");

            System.out.println(" 1 Bubble Sort  ");

            System.out.println(" 2 Selection Sort  ");

            System.out.println(" 3 Insertion Sort  ");

            System.out.println("============================");

            Scanner entrada = new Scanner(System.in);

            System.out.print(" DESEJA ORDENAR COM QUAL ALGORITMO :");

            opção = entrada.nextInt();

            switch (opção) {

   case 1:

                    // Ordenação

                    long tempoInicial = System.currentTimeMillis();

                    for (int i = 0; i <= registro.length; i++) {

                        for (int c = i + 1; c < registro.length; c++) {

                            int compareTo = registro[i].compareTo(registro[c]);

                            if (compareTo > 0) {

                                String temp = registro[i];

                                registro[i] = registro[c];

                                registro[c] = temp;
                            }
                        }

                    }

                    for (String string : registro) {

                        for (String valor : registro) {

                            System.out.println(valor);
                        }

                    }


            long tempoFinal = System.currentTimeMillis();

            System.out.print("TEMPO DE EXECUÇÃO DO BUBLLE SORT:");

           System.out.println(tempoFinal - tempoInicial / 1000);

            break;



    case 2:

              for (int i = 0;i< registro.length ;i++){

                int iMenor = i;

        for (int j = 0; j < registro.length; j++) {

            int compareTo = registro[i].compareTo(registro[j]);

             if (compareTo > 0) {

            if (registro[j] < registro[iMenor]) {

                int iMaior= j;



                 if (iMenor != iMaior) {

                String temp = registro[i];

                registro[i] = registro[iMenor];

                registro[iMenor] = temp;
              }

            }

           }



            for (String string : registro) {

            for (String valor : registro) {

              System.out.println(valor);
            }

            }

            break;

         }

        }

Versões(2):

Ver a versão formatada

Tem um erro no case 2 ,"no sugundo if", aparece esse erro bad operand types for binary operator "<".

Comentário

new question