比较String[i].charAt(j)与char[i][j]的运行时间

本文探讨了在处理大量字符时,使用String.charAt()方法与将String转换为char数组并访问char[i]的性能差异。实验表明,当字符串长度增加到一定程度时,String.charAt()的运行时间几乎是char数组访问的两倍。作者通过测试验证了这一现象,并推测可能的原因包括String.length()和char.length的不同计算时间,以及charAt(i)和char[i]的访问速度差异。
摘要由CSDN通过智能技术生成

今天,我在网上做算法题时总是提示“运行超时”,我很纳闷为什么,我一开始程序里用的String[].charAt(j),后来我开始尝试先将String ->toCharArray(),在利用char[][]进行获取字符,效果明显提升。

我这里用一维比较了下:


import java.util.Scanner ;

public class test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner( System.in ) ;
		String str = new String() ;
		str = sc.next() ;
		
		while( !str.equals("") ) {
			/* 使用String[i].charAt(j)获取字符 */
			long t1 = (long) System.currentTimeMillis() ;
			for( int i = 0; i < str.length(); i ++ ) 
				System.out.print( str.charAt(i) ) ;
			System.out.println();
			long t2 = (long) System.currentTimeMillis() ;
			long time1 = t2-t1 ;
			System.out.println(time1 + "ms");
			
			
			/* 先将String.toCharAr
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值