java算法竞赛:StringBuilder更省空间更快速

在Java编程中,处理大量字符串拼接时,String会导致内存限制问题。StringBuffer线程安全但速度较慢,而StringBuilder虽不安全但速度快。在算法竞赛这种单线程场景下,StringBuilder成为首选。通过测试,使用StringBuilder解决全排列问题,时间从使用String的超出内存降低到约296ms。
摘要由CSDN通过智能技术生成

参考文章:Java StringBuffer 和 StringBuilder 类
     String、StringBuffer与StringBuilder之间区别

用java写代码时,总会一不小心超出内存限制,这时候就需要摒弃String,考虑多使用可变长字符串了。

String:每次拼接都会生成个新的变量,遇见多次拼接的情况极容易超出内存限制!
StringBuffer:改变字符串,不产生新的对象,线程安全。
StringBuilder:改变字符串,不产生新的对象,线程不安全,但是速度更快!因为算法竞赛中通常不涉及多线程,所以一般情况使用StringBuilder!

StringBuffer类和StringBuilder类的方法几乎一样,所以在此列出StringBuilder的方法,同样适用于StringBuffer类

        // 此处仅举例常用的方法,如果后续有其他方法常用,我再来进行补充
        // 创建StringBuilder变量
        StringBuilder stringBuilder = new StringBuilder();
        // append()         拼接
        stringBuilder.append("abcde");                      // abcde
        // insert()         插入
        stringBuilder.insert(5,"f");           			    // abcdef
        // deleteCharAt()   删除指定位置的字符
        stringBuilder.deleteCharAt(1);                      // acdef
        // delete()         删除一段字符,【左,右)
        stringBuilder.delete(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值