最初写算法时,是用Scanner的。因为当时接触的测试数据基本都是以算法的复杂度为主,但是后面遇到大量的输入数据时。发现Scanner远远不能满足条件。下面列出几种常用的输入输出方式。(输出统一用printwriter,系统的system.out太慢,结尾要释放缓存才能输出,不然数据放在缓存中输不出来)

1:Scanner 这个类最慢,但是最好用,因为这个类没有缓存处理,所以io方面大量输入读取特别慢。

Scanner sc=new Scanner(System.in);

PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));

2:bufferedreader这个类最不方便,但是可以满足大部分输入速度的需求,输入缺点就是只能按行读取数据,必要时需要字符串分割,转成int以及其他类型还需要转换。

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

PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));

这种输入方式只能输入字符串然后分割处理等等,效率比Scanner高很多

3:StreamTokenizer这个类最快,相对第二种也好用很多,他的底层是用字符分割用,但是这样处理有很大局限性。输入string类型除了纯字母。否则混合输入会出错,特殊符号在字符串中输入也不行。

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

PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));

in.nextToken();int n=(int)in.nval;

in.nextToken();long p=(long)in.nval;

in.nextToken();double q=in.nval;

out.print(n);

out.flush();

这种输入方式效率最高,巨大的输入量也能快速处理。

下面附上同一个题*(百度之星2018资格赛1002三种输入的时间差距)

Scanner超时

bufferedreader

Streamtokenizer最快

其中bufferedreader最难用,Scanner最好用,但是streamtokenizer最快,刚开始可能用的不习惯,但是习惯就好了,毕竟这个影响太大了,至于输出。系统输出太慢。大量数据还会超时。

本文分享 CSDN - Big sai。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

acm之java输入输出_ACM中Java输入输出相关推荐

  1. acm java输入输出_ACM中java如何快速输入输出

    今天又遇到java做ACM超时的问题. 然后网上找了好多方法,最后总结出自己的. java的Scanner 比较慢(出了名的了),但是ACM的要求有比较高. java其实有别的解决方案,就是使用Str ...

  2. 安卓JAVA调用lua_android中java与lua的相互调用

    Android Studio Lua环境配置 开发环境 1. Android Studio 3.5 2. java sdk: 1.8.0 3.android sdk:28 配置环境 添加lua支持语法 ...

  3. vscode java环境_VSCode中Java开发环境的配置方法

    vscode中怎么搭建Java开发环境?下面本篇文章给大家介绍一下VSCode配置Java开发环境的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 配置Java开发环境 主要参 ...

  4. 小技巧 ----- Java算法题中的输入输出

    输入操作 一般使用Scanner s = new Scanner(System.in); Scanner类中的常用方法 方法 描述 String next() 接受的字符串以空格划分且不包含\n St ...

  5. acm教程 java版_ACM之java速成 (转)

    //这里指的java速成,只限于java语法,包括输入输出,运算处理,字符串和高精度的处理,进制之间的转换等,能解决OJ上的一些高精度题目. //1. 输入: // 格式为:Scanner cin = ...

  6. ebs java并发_EBS中Java并发程序笔记(1)

    在Oracle EBS中的Java并发程序(Java Concurrent Program)是系统功能中的一个亮点,它的出现使得用户可以在ERP系统中运行自己定义的Java程序.本文为学习笔记,所以不 ...

  7. Java笔记-JNI中Java与C语言解决中文乱码问题

    目录 基本概念 演示过程 基本概念 这里我把他总结成4个步骤: 1. 找类,Java的String: 2. 找函数String类的方法,成员函数: 3. 设置要转换的字符和编码: 4. 程序生成编码后 ...

  8. java职业教育考试题_Java认证考试中Java构造方法题目解答

    [Java认证考试中Java构造方法题目解答]java中,在创建一个新的对象的时候,会调用其父亲的构造方法,测试程序如下: class parent{ int a=5; public parent() ...

  9. 【Java】浅谈Java的I/O体系

    文章目录 流(Stream) 流的分类 java.io.* I/O体系的四大抽象类 流的分类总结表 流的层次结构图 字节输入流的层次结构图 字节输出流的层次结构图 字符输入流的层次结构图 字符输出流的 ...

最新文章

  1. 机器学习泰斗迈克尔 · 乔丹:不是什么都叫AI的
  2. splunk rest api search
  3. jQuery中终止Ajax请求
  4. zend framework1.11使用原生代码获取结果
  5. mysql 必读_MYSQL 调优和使用必读
  6. 2017年最新基于Bootstrap 4 的专业、多用途响应式布局的系统模板
  7. 分享自己写的一个贪吃蛇的游戏(Linux)
  8. linux运维平台工具,Linux运维自动化工具 Kickstart
  9. ionic3使用第三方图标
  10. 使用PyTorch实现CNN
  11. 2021计算机二级考试五月报名,2021年5月全国计算机等级考试报名时间
  12. 利用VS软件生成可执行的文件(.exe文件)
  13. 2022-07-02 Android 进入app 后 距离传感器控制手机屏幕熄灭的方法-接近传感器Proximity Sensor的信号
  14. 调用链根因定位论文《Ranking causal anomalies by modeling local propagations on networked systems》
  15. 成长性思维和富人思维
  16. 网络通信——下载管理器DownloadManager——在通知栏显示下载进度
  17. Ken按特性开发核心思想
  18. 【Android 教程系列第 13 篇】在小米手机上使用安卓投屏软件 QtScrcpy ,为什么点击屏幕没有反应
  19. butter中文意思_butter中文是什么意思
  20. oracle创建分区.md

热门文章

  1. iOS 的内存管理和虚拟内存机制具体是怎么运作的?
  2. 【ShaderToy】跳动的心
  3. “中国音乐金钟奖”落地成都 今年起将连续举办三届
  4. Spring框架教程集合
  5. 关于Android的Service知识点,你知道吗?
  6. ReactNative(三)——WebStorm的基本配置
  7. Ecstore跳过后台激活验证和shopexId授权
  8. visual studio installer 卸载时不能删除安装目录问题
  9. 改变你一生命运的话语 不得不信
  10. Android源码学习之如何使用eclipse+NDK