Программа уходит на бесконечное выполнение, пробовал в идее, ридер не останавливается на 20м слове, а продолжает дальше читать. Подскажите, в чем косяк?
package com.javarush.task.task08.task0830;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/*
Задача по алгоритмам
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String[] array = new String[20];
for (int i = 0; i < array.length; i++) {
array[i] = reader.readLine();
}
sort(array);
for (String word : array) {
System.out.println(word);
}
}
public static void sort(String[] array) {
boolean check = true;
while (check==true){
check = false;
for (int i = 1; i<array.length; i++){
if (!isGreaterThan(array[i-1], array[i])) {
String tmp = array[i-1];
array[i-1] = array[i];
array[i] = tmp;
}
check = true;
}
}
}
//Метод для сравнения строк: 'а' больше чем 'b'
public static boolean isGreaterThan(String a, String b) {
return a.compareTo(b) > 0;
}
}