У меня есть следующая программа, где я пытаюсь реализовать вставки рода для сортировки массива строк:Вставки рода сбой при попытке отсортировать массив строк
import java.util.Scanner;
public class InsertionSort {
public static Scanner console = new Scanner(System.in);
public static void main(String[] args) {
System.out.print("How long do you want your array to be? ");
int arraySize = console.nextInt();
String a[] = arrayOfStrings(arraySize);
System.out.println("Here is the sorted data: ");
**insert(a, arraySize);**
}
public static String[] arrayOfStrings(int size) {
String a[] = new String[size];
int i = 0;
do {
System.out.print("Input a string: ");
String input = console.next();
input = a[i];
i++;
} while(i < size);
return a;
}
public static void insert(String[] a, int size) {
**String temp = a[size];**
int j = size - 1;
while (j >= 0 && a[j].compareToIgnoreCase(temp) > 0) {
a[j + 1] = a[j];
j--;
}
a[j + 1] = temp;
}
}
Когда я запускаю программу, он выходит из строя полностью , Я получаю исключение за пределы по строкам, помеченным звездочками, и некоторые ошибки «NativeMethodAccessorImpl». Я уверен, что проблема в моем сортировке вставки, но я не могу понять, где и почему именно потому, что ошибка вне границ не имеет смысла для меня. Я пытаюсь сортировать строки, заданные пользователем, и помещать их в алфавитном порядке из a-z.
Массивы в Java являются 0-индексированные (т.е. они идут от 0 до размера-1), так что вы можете» t законным доступом к массиву с индексом его размера. – azurefrog
https://docs.oracle.com/javase/7/docs/api/java/lang/ArrayIndexOutOfBoundsException.html – zerocool