日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

ACM中Java输入输出

發布時間:2025/3/20 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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输入输出的全部內容,希望文章能夠幫你解決所遇到的問題。

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