Сравнение входных операторов в Java - PullRequest
0 голосов
/ 15 февраля 2011

Два оператора, которые более или менее выполняют ту же работу, что и ввод int

int foo = new Scanner(System.in).nextInt();

и

int bar = Integer.parseInt(new Scanner(System.in).next());

Есть ли разница в производительности между ними .. ???????????

Ответы [ 2 ]

3 голосов
/ 15 февраля 2011

Время мигания составляет около 50 миллисекунд. Время нажатия клавиши примерно одинаково. Разница между этими утверждениями будет намного меньше, чем эта, и будет менее 0,002 миллисекунд.

Короче, я бы об этом не беспокоился. Сделайте это правильно, ясно и просто, и это часто также самый быстрый.

1 голос
/ 15 февраля 2011

Честно говоря, я не думаю, что вы должны думать об эффективности здесь, тем более что вы, кажется, используете ее для локальной переменной, и вы выбрасываете (вновь созданный) Scanner в любом случае.

Но если это все еще представляет интерес, я бы сказал, что разница в производительности незначительна, поскольку Scanner.nextInt в любом случае заканчивается

return Integer.parseInt(s, radix);

.

проанализировать несколько целых чисел, я бы сказал, лучший способ создать Scanner один раз, и повторно использовать этот экземпляр:

Scanner scanner = new Scanner(System.in);
int foo = scanner.nextInt();
int bar = scanner.nextInt();
// ...
...