Быстрое чтение данных

154
14 марта 2018, 05:46

У нас есть следующая конструкция, которая отвечает за чтение:

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

Входные данные представляют собой список интовых значений разделенных пробелом. Т.е. N строк, в которых K значений.

Необходимо прочитать максимально быстро.

Пробовал читать следующим образом:

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
while((String line = bufferedReader.readLine()) != null){
    String[] strNums = line.trim().split("\\s+");
    for (String strNum1 : strNums) {
        if (strNum1.length() > 0) {
            data[counter] = Integer.parseInt(strNum1);
            counter++;
        }
    }
}

Данное решение показывает неудовлетворительную производительность. Подскажите пожалуйста, как прочитать входные данные быстрее?

Answer 1

Можно использовать сканер.

Для считывания из консоли нужно использовать new Scanner(System.in):

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        String input = "1 2 3\n4 5 6\n7 8 9";
        List<Integer> items = new ArrayList<>();
        try (Scanner s = new Scanner(input)) {
            while (s.hasNextInt()) {
                items.add(s.nextInt());
            }
        }
        System.out.println(items);
    }
}

Результат:

[1, 2, 3, 4, 5, 6, 7, 8, 9]
READ ALSO
JavaFX Как сделать окно внутри окна

JavaFX Как сделать окно внутри окна

Доброго времени суток! Как на JavaFX сделать окно Window 2 внутри главного окна Window 1? Те

209
BroadcstReciver и AlarmManager

BroadcstReciver и AlarmManager

У меня такая задача, нужно через определенные отрезки времени обмениваться с сайтом информацией и в силу свое малого познания android я делаю...

136
Подгрузка данных с API+DB используя offset и limit

Подгрузка данных с API+DB используя offset и limit

У меня есть вот такой метод API

222
Десериализация JSON: нечитаемые символы

Десериализация JSON: нечитаемые символы

Одно приложение стучится в другое и получает REST-ответ в виде JSON

151