日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

ACM中Java输入输出

發布時間:2025/3/20 java 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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最快,剛開始可能用的不習慣,但是習慣就好了,畢竟這個影響太大了,至于輸出。系統輸出太慢。大量數據還會超時。

總結

以上是生活随笔為你收集整理的ACM中Java输入输出的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。