Какой метод предпочтительнее с точки зрения производительности при добавлении строк в List / Map? - PullRequest
0 голосов
/ 09 октября 2018

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 голосов
/ 09 октября 2018

Это зависит от ваших требований, если вы хотите изменить объект, расположенный по определенному индексу, тогда выберите строку Builder.Но опять же, если вы работаете в многопоточной среде, вам нужно осторожно использовать построитель строк, так как это изменяемый класс.

Если вы не изменяете свой список, тогда вам нужно перейти на String.

0 голосов
/ 09 октября 2018

Мой ответ основан на поиске в Google, а не на собственном ответе. Я думаю, что мои небольшие усилия помогут вам лучше понять тему.

Stringbuilder против строки:

  • String является неизменным, тогда как StringBuffer и StringBuider являются изменяемыми классами.

  • StringBuffer является поточно-ориентированным и синхронизирован, а StringBuilder - нет, поэтому StringBuilder работает быстрее, чем StringBuffer.

  • Оператор String concat + внутренне использует класс StringBuffer или StringBuilder.

Ответ Stackoverflow

Заключение / Ответ:

Каждый предпочитает stringbuilder, а не string

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...