遍历连接字符串

zhongzhan2011 2016-08-25 12:19:14
我需要实现在一个循环里面连接字符串,用string.format("%s-%s-%s-%s-%s")来拼接。当循环次数大的时候性能太低了,用stringbuffer也是一样,有没有好方法能提高一下性能的呢
...全文
346 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhongzhan2011 2016-08-30
  • 打赏
  • 举报
回复
引用 7 楼 bree06的回复:
说说需求吧, 现在有什么样的数据, 要达到什么样的效果
额,已经搞定了
bree06 2016-08-29
  • 打赏
  • 举报
回复
说说需求吧, 现在有什么样的数据, 要达到什么样的效果
zhongzhan2011 2016-08-29
  • 打赏
  • 举报
回复
引用 5 楼 bree06的回复:
[quote=引用 4 楼 zhongzhan2011 的回复:] [quote=引用 2 楼 bree06的回复:]那就考虑一下为什么一定要连接字符串, 不拼接可不可以处理. 不拼接处理速度会不会更快更方便. 实在要拼接的话可以这样 1. 使用局部变量StringBuilder, 只要不是全局的变量多线程也不会受影响. 2. %s-%s-%s-%s-%s拼完后的字符串长度是否都差不多? 比较拼完后都是100个左右的长度, 那在建StringBuilder的时候指定长度100可以避免多次内存分配 3. 考虑复用StringBuilder, 将StringBuilder的定义放在循环外面, 然后在循环中使用结束后调用delete()方法清除内容, 部分内容一样的话还可以将一样的内容存留在StringBuilder中, 只清除不一样的内容
非常感谢,我这要比较一个model的六个字段(model里面还有其他的字段还需另外比较,所以不能直接equls),所以我选择了拼接字符串的方式。您看还有什么更好的方法吗[/quote]直接用&&比较会更好吧, 把最容易不一致的字段放在前面比较, &&比较的好处是只要出现false就不会继续往下处理了[/quote] 用&&不好吧把list里面这几个字段相同的放一组啊
bree06 2016-08-29
  • 打赏
  • 举报
回复
引用 4 楼 zhongzhan2011 的回复:
[quote=引用 2 楼 bree06的回复:]那就考虑一下为什么一定要连接字符串, 不拼接可不可以处理. 不拼接处理速度会不会更快更方便. 实在要拼接的话可以这样 1. 使用局部变量StringBuilder, 只要不是全局的变量多线程也不会受影响. 2. %s-%s-%s-%s-%s拼完后的字符串长度是否都差不多? 比较拼完后都是100个左右的长度, 那在建StringBuilder的时候指定长度100可以避免多次内存分配 3. 考虑复用StringBuilder, 将StringBuilder的定义放在循环外面, 然后在循环中使用结束后调用delete()方法清除内容, 部分内容一样的话还可以将一样的内容存留在StringBuilder中, 只清除不一样的内容
非常感谢,我这要比较一个model的六个字段(model里面还有其他的字段还需另外比较,所以不能直接equls),所以我选择了拼接字符串的方式。您看还有什么更好的方法吗[/quote]直接用&&比较会更好吧, 把最容易不一致的字段放在前面比较, &&比较的好处是只要出现false就不会继续往下处理了
zhongzhan2011 2016-08-28
  • 打赏
  • 举报
回复
引用 2 楼 bree06的回复:
那就考虑一下为什么一定要连接字符串, 不拼接可不可以处理. 不拼接处理速度会不会更快更方便. 实在要拼接的话可以这样 1. 使用局部变量StringBuilder, 只要不是全局的变量多线程也不会受影响. 2. %s-%s-%s-%s-%s拼完后的字符串长度是否都差不多? 比较拼完后都是100个左右的长度, 那在建StringBuilder的时候指定长度100可以避免多次内存分配 3. 考虑复用StringBuilder, 将StringBuilder的定义放在循环外面, 然后在循环中使用结束后调用delete()方法清除内容, 部分内容一样的话还可以将一样的内容存留在StringBuilder中, 只清除不一样的内容
非常感谢,我这要比较一个model的六个字段(model里面还有其他的字段还需另外比较,所以不能直接equls),所以我选择了拼接字符串的方式。您看还有什么更好的方法吗
zhongzhan2011 2016-08-28
  • 打赏
  • 举报
回复
引用 1 楼 小灯光环的回复:
不考虑线程安全的话stringbuilder能比stringbuffer效率高一些
builder的确比快一点。
bree06 2016-08-25
  • 打赏
  • 举报
回复
那就考虑一下为什么一定要连接字符串, 不拼接可不可以处理. 不拼接处理速度会不会更快更方便. 实在要拼接的话可以这样 1. 使用局部变量StringBuilder, 只要不是全局的变量多线程也不会受影响. 2. %s-%s-%s-%s-%s拼完后的字符串长度是否都差不多? 比较拼完后都是100个左右的长度, 那在建StringBuilder的时候指定长度100可以避免多次内存分配 3. 考虑复用StringBuilder, 将StringBuilder的定义放在循环外面, 然后在循环中使用结束后调用delete()方法清除内容, 部分内容一样的话还可以将一样的内容存留在StringBuilder中, 只清除不一样的内容
小灯光环 版主 2016-08-25
  • 打赏
  • 举报
回复
不考虑线程安全的话stringbuilder能比stringbuffer效率高一些

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧