Сложность здесь не O(n^2)
. В вашем коде вы читаете каждый символ дважды, а не n^2
раза. Первое чтение - это когда вы читаете строку, второе - когда вы перебираете символы в этой строке. Это означает, что сложность О(n)
. Вы можете сделать то же самое в одном чтении: просто прочитайте html символьно и вставьте эти символы в Queue
во время чтения.
private static Queue<Character> queueCharacter = new LinkedList<>();
public static void main(String[] args) {
try (InputStream inputStream = new URL(addressUrl).openStream()) {
BufferedReader buffer = new BufferedReader(new InputStreamReader(inputStream));
int c = 0;
while ((c = buffer.read()) != -1) {
char character = (char) c;
if (character != ' ' && character != '\n') {
//filter space and endline symbol
queueCharacter.add(character);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}