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体系的四大抽象类 流的分类总结表 流的层次结构图 字节输入流的层次结构图 字节输出流的层次结构图 字符输入流的层次结构图 字符输出流的 ...
最新文章
- nginx技术(2)nginx的配置详解
- 26岁创造UNIX,退休后却成为一名飞行员,这位编程界大佬不走寻常路
- python time 时钟计时_如何使用Python的timeit计时代码段以测试性能?
- svn命令行使用说明
- sql 多表多行模糊查询_从零开始学习SQL(五)多表查询
- 浅谈Opencl四大模型之Platform model
- 关于两个list深层遍历
- [Linux] 通过shell给unix socket发送数据
- CF 914 D. Bash and a Tough Math Puzzle
- 记录阿里技术面试全流程
- 苹果怎么锁定计算机,苹果电脑如何锁定屏幕-mac锁定屏幕教程 - 河东软件园
- 极进网络(Extreme Networks )Extreme VDX 6940 交换机光模块配置方案
- 生成验证码 大写、小写字母,数字 java
- 史上最全Android版本号信息:)_我是亲民_新浪博客
- 今日头条如何运营,今日头条怎么运营好,今日头条运营技巧
- 网站镶嵌网站显示代码
- SQL题库:sqllearning4​—触发器、数据库存储练习
- STM32CubeMX之FMC同时挂载SDRAM(W9825G6KH)和TFTLCD
- 山外多功能调试助手用作MM32虚拟示波器
- 快速制作PPT的方法有哪些?这五种很实用!
热门文章
- Linux打印介绍【转贴】
- Hadoop_10_HDFS 的 DataNode工作机制
- OwlCarousel.js 帮助API
- Javascript实现简单的选项卡
- 虚拟网卡实现一个网卡多个地址
- AKKA 笔记 - 有限状态机 -2
- 零件销售系统的质量属性
- 【原生态跨平台:ASP.NET Core 1.0(非Mono)在 Ubuntu 14.04 服务器上一对一的配置实现-篇幅2】...
- 设计模式--请参阅本质
- bgb邻居关系建立模型_今日 Paper | 新闻推荐系统;多路编码;知识增强型预训练模型等...