ACM中Java输入输出[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。
最初写算法时,是用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最快,刚开始可能用的不习惯,但是习惯就好了,毕竟这个影响太大了,至于输出。系统输出太慢。大量数据还会超时。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/144966.html原文链接:https://javaforall.cn
相关文章
- java 怎样卸载一个类_Java 动态卸载类[通俗易懂]
- Java:JVM垃圾回收机制[通俗易懂]
- 菜鸟教程java_JAVA笔记(菜鸟教程)[通俗易懂]
- java是面向对象还是面向过程_Java面向对象编程和面向过程编程的区别[通俗易懂]
- 如何用命令行编译、运行第一个java程序(Hello World!)[通俗易懂]
- java pfx 证书_Java将pfx证书转换为jks[通俗易懂]
- java启动器_JAVA基础:Java 启动器如何查找类
- java图书馆新地址_最受Java开发者喜爱的5款开源IDE盘点
- java开发常用四大框架_Java 后台开发框架[通俗易懂]
- java后端开发需要学什么_从事Java后端开发,要学习哪些知识和技能?[通俗易懂]
- 怎么让Java输入字符串_怎么让Java获取用户输入的字符串[通俗易懂]
- java环境_Java基础篇——环境配置
- java uuid 随机数_Java随机数和UUID[通俗易懂]
- java基本数据类型 think in java_Think in Java(一):Java基础[通俗易懂]
- java 读取字符串文件_Java读取文件为字符串
- java softreference_Java引用总结–StrongReference、SoftReference、WeakReference、PhantomReference…[通俗易懂]
- java 常量表达式,需要常量表达式? (Java switch语句)[通俗易懂]
- Java反射工具类详解编程语言
- Linux安装Java: 迈出第一步(linux上安装java)
- Oracle终止支持Java:转向新时代(oracle抛弃java)
- Linux环境中如何顺利执行Java程序?(linux下执行java)
- Oracle全面支持Java链技术构建数据库应用(java链oracle)
- 客户端Java客户端快速关闭Redis连接(关闭redis的java)