LeetCode中的一道算法題,使用toCharArray()時間超時,換成charAt()之后通過,所以測試一下兩者的運行效率:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
public static void test() { String s = "a" ; for ( int i = 0 ; i < 100000 ; i++) { s += "a" ; } long start1 = System.currentTimeMillis(); char [] cs = s.toCharArray(); for ( char c:cs) { System.out.println( 1 ); // 需要輸入語句進入循環(huán) } long end1 = System.currentTimeMillis(); long start2 = System.currentTimeMillis(); for ( int i = 0 ; i < s.length(); i++) { char c = s.charAt(i); System.out.println( 1 ); } long end2 = System.currentTimeMillis(); System.out.println(end1 - start1); System.out.println(end2 - start2); } |
結(jié)果證明charAr()效率較高些,運行結(jié)果為:
1980
1443
補充知識:JAVA: toCharArray()類 將字符串轉(zhuǎn)為數(shù)組
我就廢話不多說了,大家還是直接看代碼吧~
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
public class Demo { public static void main(String[] args){ String str = "helloworld" ; char [] data = str.toCharArray(); // 將字符串轉(zhuǎn)為數(shù)組 for ( int x = 0 ; x < data.length; x++) { System.out.print(data[x] + " " ); data[x] -= 32 ; System.out.print(data[x] + " " ); } System.out.println( new String(data)); } } |
以上這篇Java.toCharArray()和charAt()的效率對比分析就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://blog.csdn.net/Yiigel/article/details/54605687