在将字符串添加到列表/映射中时,从性能角度考虑,哪种方法更可取?

时间:2018-10-09 03:21:23

标签: java list arraylist collections

String或String Builder在下面的方法中哪个更可取?请解释。

ArrayList<String> list=new ArrayList< String >();
    list.add(new String ("One"));
    list.add(new String ("Two"));
    list.add(new String ("Three"));
    .
    .
    .
    list.add(new String ("N"));

(或)

ArrayList<StringBuilder> list=new ArrayList<StringBuilder>();
    list.add(new StringBuilder("One"));
    list.add(new StringBuilder("Two"));
    list.add(new StringBuilder("Three"));
    .
    .
    .
    list.add(new StringBuilder("N"));

2 个答案:

答案 0 :(得分:0)

我的答案不是基于Google搜索,而是我自己的答案,我认为我的小努力可以帮助您更好地理解该主题。

Stringbuilder与字符串:

  
      
  • 字符串是不可变的,而StringBuffer和StringBuider是可变的类。

  •   
  • StringBuffer是线程安全的并且是同步的,而StringBuilder不是,这就是为什么StringBuilder比StringBuffer更快的原因。

  •   
  • 字符串concat +运算符在内部使用StringBuffer或StringBuilder类。

  •   

Stackoverflow answer

结论/答案:

与字符串相比,每个人都更喜欢stringbuilder

答案 1 :(得分:0)

这取决于您的要求,如果要修改位于特定索引处的对象,请使用字符串生成器。但是再次提醒您,如果您在多线程环境中工作,则必须谨慎使用字符串生成器,因为它是可变类。

如果不修改列表,则必须使用String。