Método selectionSort que ordenará una ArrayList por tipo

SOF Tengo un problema con el que tengo dificultades.

Se supone que el siguiente código tamiza el archivo línea por línea, utiliza el StringTokenizer de manera efectiva para obtener la Marca, el Modelo, el Año y el Kilometraje de la Clase de Automóviles (en ese orden) y los almacena en un objeto de automóvil, que luego agrego a 2 ArrayLists, una de las cuales está "ordenada" por Make y la otra "ordenada".

El selectionSort que escribí inicialmente funcionó con Strings que no funcionó por razones obvias.

¿Se puede solucionar esto haciendo que selectionSort funcione con objetos (Cars)? Eclipse me lo recomendó y la selección actual es un producto de eso.

public void readFile(String file) throws FileNotFoundException //an object array that takes in string files
{  
   try {
        File myFile = new File(file); //converts the parameter string into a file
        Scanner scanner = new Scanner(myFile); //File enables us to use Scanner
        String line = scanner.nextLine(); //reads the current line and points to the next one
        StringTokenizer tokenizer = new StringTokenizer(line, ","); //tokenizes the line, which is the scanned file

        int tokenCount = new StringTokenizer(line, ",").countTokens(); //counts the tokens 
        while (tokenizer.hasMoreTokens()){
            if(tokenCount > 4) {
               System.out.println(" Not 4 tokens");
            }
            else {
               String CarMake = tokenizer.nextToken(); //since car is in order by make, model, year, and mileage
               String CarModel = tokenizer.nextToken();
               int CarYear1 = Integer.parseInt(tokenizer.nextToken());
               int CarMileage1 = Integer.parseInt(tokenizer.nextToken()); //converts the String numbers into integers
               Car cars = new Car(CarMake, CarModel, CarYear1, CarMileage1); //since the car has a fixed order 
               arraylist.add(cars); //add the cars to the unsorted array
            }
        }
        scanner.close(); //close the scanner  
    } catch (FileNotFoundException f){
        f.printStackTrace();
    }
    arraylist2.addAll(arraylist);
    selectionSort(arraylist2);
}

public static void selectionSort(ArrayList<Car> arraylist) //Selection sort using strings
{
  for (int i = 0; i <= arraylist.size(); i++)
  {
    // Look through the unsorted strings (those at j or higher) for the one that is first in order
    int min = i;
    for (arraylist[i].getMake.compareTo(arraylist[min].getMake) < 0) { //use the inherent string compareTo
          min = k;  
    }
    String temp = arraylist[i].getMake; //swapping
    arraylist[i].getMake = arraylist[min].getMake;
    arraylist[min] = temp;
  }
}

Cualquier ayuda sería muy apreciada.

Respuesta 1

Estoy usando JavaFX 11.0.1 en Java 11 en Linux (KDE Plasma 5.12.2 en openSUSE Tumbleweed 20190314) para crear un cuadro de diálogo de Alerta que debería verse así: Pero la mayoría de las veces cuando se crea una Alerta ...

Necesito poder llamar a un método real de objeto espía basado en alguna condición. Es decir, si la condición es verdadera, llame al método real; de lo contrario, haga otra cosa. Para ser claro, necesito lanzar una excepción ...

Usando OpenJDK 1.7.0 y GNU JavaMail 1.1.2. Durante la llamada de envío del mensaje real: SMTPTransport.send (msg); Esto sucede: javax.mail.NoSuchProviderException: No hay proveedor para la dirección: rfc822 en ...

Hago una tabla con celdas multilínea, funcionó bien, pero quiero cambiar el color de una sola fila después de hacer celdas de mulilina de columnas específicas, no el color de toda la columna. ¿Cómo puedo hacer eso? ...