acm之java输入输出_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最快,刚开始可能用的不习惯,但是习惯就好了,毕竟这个影响太大了,至于输出。系统输出太慢。大量数据还会超时。
本文分享 CSDN - Big sai。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
acm之java输入输出_ACM中Java输入输出相关推荐
- acm java输入输出_ACM中java如何快速输入输出
今天又遇到java做ACM超时的问题. 然后网上找了好多方法,最后总结出自己的. java的Scanner 比较慢(出了名的了),但是ACM的要求有比较高. java其实有别的解决方案,就是使用Str ...
- 安卓JAVA调用lua_android中java与lua的相互调用
Android Studio Lua环境配置 开发环境 1. Android Studio 3.5 2. java sdk: 1.8.0 3.android sdk:28 配置环境 添加lua支持语法 ...
- vscode java环境_VSCode中Java开发环境的配置方法
vscode中怎么搭建Java开发环境?下面本篇文章给大家介绍一下VSCode配置Java开发环境的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 配置Java开发环境 主要参 ...
- 小技巧 ----- Java算法题中的输入输出
输入操作 一般使用Scanner s = new Scanner(System.in); Scanner类中的常用方法 方法 描述 String next() 接受的字符串以空格划分且不包含\n St ...
- acm教程 java版_ACM之java速成 (转)
//这里指的java速成,只限于java语法,包括输入输出,运算处理,字符串和高精度的处理,进制之间的转换等,能解决OJ上的一些高精度题目. //1. 输入: // 格式为:Scanner cin = ...
- ebs java并发_EBS中Java并发程序笔记(1)
在Oracle EBS中的Java并发程序(Java Concurrent Program)是系统功能中的一个亮点,它的出现使得用户可以在ERP系统中运行自己定义的Java程序.本文为学习笔记,所以不 ...
- Java笔记-JNI中Java与C语言解决中文乱码问题
目录 基本概念 演示过程 基本概念 这里我把他总结成4个步骤: 1. 找类,Java的String: 2. 找函数String类的方法,成员函数: 3. 设置要转换的字符和编码: 4. 程序生成编码后 ...
- java职业教育考试题_Java认证考试中Java构造方法题目解答
[Java认证考试中Java构造方法题目解答]java中,在创建一个新的对象的时候,会调用其父亲的构造方法,测试程序如下: class parent{ int a=5; public parent() ...
- 【Java】浅谈Java的I/O体系
文章目录 流(Stream) 流的分类 java.io.* I/O体系的四大抽象类 流的分类总结表 流的层次结构图 字节输入流的层次结构图 字节输出流的层次结构图 字符输入流的层次结构图 字符输出流的 ...
最新文章
- 机器学习泰斗迈克尔 · 乔丹:不是什么都叫AI的
- splunk rest api search
- jQuery中终止Ajax请求
- zend framework1.11使用原生代码获取结果
- mysql 必读_MYSQL 调优和使用必读
- 2017年最新基于Bootstrap 4 的专业、多用途响应式布局的系统模板
- 分享自己写的一个贪吃蛇的游戏(Linux)
- linux运维平台工具,Linux运维自动化工具 Kickstart
- ionic3使用第三方图标
- 使用PyTorch实现CNN
- 2021计算机二级考试五月报名,2021年5月全国计算机等级考试报名时间
- 利用VS软件生成可执行的文件(.exe文件)
- 2022-07-02 Android 进入app 后 距离传感器控制手机屏幕熄灭的方法-接近传感器Proximity Sensor的信号
- 调用链根因定位论文《Ranking causal anomalies by modeling local propagations on networked systems》
- 成长性思维和富人思维
- 网络通信——下载管理器DownloadManager——在通知栏显示下载进度
- Ken按特性开发核心思想
- 【Android 教程系列第 13 篇】在小米手机上使用安卓投屏软件 QtScrcpy ,为什么点击屏幕没有反应
- butter中文意思_butter中文是什么意思
- oracle创建分区.md