Java在OJ時運行超時的問題解決方案
Java語言什么都好,就是在OJ的時候真的是太慢了,今天來講解一種讓Java運行速度快速提高的方法。
1.Scanner
scanner類在運行時候真的是巨慢無比,尤其是當要讀入很多數(shù)據(jù)的時候如果用scanner,那一定能讓你感受到絕望看一個,所以在讀入數(shù)據(jù)時我們一般使用BufferedReader來讀取數(shù)據(jù),先來看一個對比圖:
在讀入10,000,000 個整數(shù)時所需時間對比:

在讀入10,000,000 個浮點數(shù)時所需時間對比:

可以看到scanner用時差不多是BufferedReader的10到20倍。
如何使用BufferedReader呢?
class Reader {
static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
static StringTokenizer tokenizer = new StringTokenizer("");
static String nextLine() throws IOException{// 讀取下一行字符串
return reader.readLine();
}
static String next() throws IOException {// 讀取下一個字符串
while (!tokenizer.hasMoreTokens()) {
tokenizer = new StringTokenizer(reader.readLine());
}
return tokenizer.nextToken();
}
static int nextInt() throws IOException {// 讀取下一個int型數(shù)值
return Integer.parseInt(next());
}
static double nextDouble() throws IOException {// 讀取下一個double型數(shù)值
return Double.parseDouble(next());
}
}其中nextLine對應Scanner.nextLine();
next() 對應Scanner.next();
nextInt() 對應Scanner.nextInt() ;
nextDouble() 對應Scanner.nextDouble() ;
2.String
當我們經(jīng)常要對一個字符串進行修改時,不要使用String類,因為String為靜態(tài),添加修改String會極其耗時,所以要使用StringBuilder()
StringBuilder s=new StringBuilder(); //建立StringBuilder的兩種方式
StringBuilder s1=new StringBuilder("Adam");
s.append("hahaha"); //在字符串末尾添加字符串
s.insert(3,"hhh"); //在字符串中的位置插入字符串
s.setCharAt(1, 's'); //將字符串中指定位置字符替換
String s3=s.toString(); //轉(zhuǎn)換為String到此這篇關(guān)于Java在OJ時運行超時的問題解決方案的文章就介紹到這了,更多相關(guān)ava在OJ時運行超時內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java POI解析Excel 之數(shù)據(jù)轉(zhuǎn)換公用方法(推薦)
下面小編就為大家?guī)硪黄猨ava POI解析Excel 之數(shù)據(jù)轉(zhuǎn)換公用方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-08
TraceIdPatternLogbackLayout日志攔截源碼解析
這篇文章主要為大家介紹了TraceIdPatternLogbackLayout日志攔截源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11
java通過jni調(diào)用opencv處理圖像的方法
今天小編就為大家分享一篇java通過jni調(diào)用opencv處理圖像的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
SpringBoot設(shè)置接口超時的方法小結(jié)
這篇文章主要介紹了SpringBoot設(shè)置接口超時的方法小結(jié),包括配置文件,config配置類及相關(guān)示例代碼,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09
SpringBoot項目調(diào)優(yōu)及垃圾回收器的比較詳解
這篇文章主要介紹了SpringBoot項目調(diào)優(yōu)及垃圾回收器的比較詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04
JAVA基礎(chǔ)之數(shù)組和集合區(qū)別對比分析
文章主要介紹了Java中數(shù)組和集合的基本概念、使用方法以及它們之間的區(qū)別,文章還探討了不可變集合的創(chuàng)建方式及其線程安全和不可篡改的優(yōu)勢,感興趣的朋友跟隨小編一起看看吧2025-11-11

