Cómo combinar ordenar una lista de matriz de cadenas

así que he estado tratando de descifrar este código durante los últimos días y no llego a ninguna parte. Esto es lo más lejos que tengo, pero ahora no muestra la matriz ordenada final, y cualquier código que intente agregar más allá de la declaración fusionada de retorno es aparentemente inalcanzable: /

import java.util.*;

public class MergeTestStringArray
{


  public static void main(String[] args)
  {
    ArrayList< String > array = new ArrayList< String >();

    array.add("John");
    array.add("Victor");
    array.add("Joe");
    array.add("Jackson");
    array.add("Anthony");
    array.add("Angelina");
    array.add("George");
    array.add("Paul");

    ArrayList< String > sortedArray = new ArrayList< String >();

    sortedArray = mergeSort(array);

    for (int i = 0; i < sortedArray.size(); i++)
    {
        System.out.println(" " + sortedArray.get(i) );
    }
  }

  public static ArrayList< String > mergeSort(ArrayList< String > list)
  {
    ArrayList < String > sorted = new ArrayList< String >();
    if (list.size() == 1)
    {
        sorted = list;
    } else {
        int mid1 = list.size() /2;

        ArrayList< String > left = new ArrayList< String >();
        ArrayList< String > right = new ArrayList< String >();

        for ( int x = 0; x < mid1; x++) {
            left.add(list.get(x));

        }
        for ( int x = mid1; x < list.size(); x++) {
            right.add(list.get(x));
        }

        System.out.println("Left Array: " + left);
        System.out.println("Right Array)" + right);

        mergeSort(left);
        mergeSort(right);
        mergeArray(left,right);
    }

    return sorted;
  }

private static ArrayList< String > mergeArray(ArrayList< String > left, ArrayList< String > right)
{
    ArrayList< String > merged = new ArrayList< String >();

    int i = 0;
    int l = 0;
    int r = 0;

    while (l < left.size() && r < right.size())
           {
              if ((left.get(l)).compareTo(right.get(r)) < 0)
              {
                 merged.add(left.get(l));
                 l++;
              }
              else
              {
                 merged.add(right.get(r));
                 r++;
              }

              i++;
           }


           while (l < left.size())
           {
              merged.add(left.get(l));
              l++;
              i++;
           }

           // Append rest of the values in the right half, if any...
           while (r < right.size())
           {
              merged.add(right.get(r));
              r++;
                  i++;
           }

    return merged;


  }

}
Respuesta 1

No estoy seguro de cuál es su pregunta, pero las declaraciones después de las declaraciones de devolución son generalmente inalcanzables. Una vez que la función alcanza la declaración de retorno, existirá la función y devolverá el valor en esa declaración de retorno.

Respuesta: 2

Su error está en su función mergeSort. Específicamente, en su caso recursivo, en realidad nunca guarda el resultado del ordenamiento en la mergedlista. Intenta reemplazar

mergeArray(left,right);

con

sorted = mergeArray(left,right);
Respuesta: 3

Necesito arreglar el método getLineNumberFor para devolver un 1 si el primer carácter del apellido está entre A y M o devolver 2 si está entre N y Z. Suena fácil en mi cabeza pero no estoy seguro de qué ...

Si las palabras mayúsculas consecutivas están en un documento "SOY TODO MAYÚSCULAS", lo que devuelvo son cuatro palabras mayúsculas separadas. Lo que necesitaría es devolver toda la mayúscula "SOY ALL MAYÚSCULAS". Como hacer ...

Estoy tratando de dividir una cadena en matrices. Se supone que el programa general convierte el binario en una cadena, pero el problema que tengo es dividir la cadena en matrices. Me siento estúpido porque esto parece ...

Primero me gustaría que se supiera que soy MUY nuevo en la codificación. Me gustaría que mi código sea capaz de producir un mensaje JOptionPane diferente para cada botón en el que he hecho clic, incluido t [1] [1] = ...