2013-03-08 3 views
2

В моем приложении я использую постоянный суффикс для значения поля, которое обновляется каждые 2 секунды, что-то вроде: «some_value km/h», где km/h - постоянный суффикс , В настоящее время я просто делаю простую конкатенацию значения с постоянным суффиксом, объявленным как static final String, но я знаю этот способ каждые 2 секунды, я создаю новый String. Есть ли лучший способ сделать это?Лучшая практика повторного использования строк с постоянным суффиксом в Java

EDIT: Пример кода:

public static final String KM_SUFFIX = " km/h"; 

public void String getFormattedValue(int val) { 
    return val + KM_SUFFIX; 
} 

Еще одно замечание: я использую это на мобильные приложения и это постоянно меняющаяся область является частью элемента списка в списке, который содержит множество предметов.

+3

Показать Ваш код. –

+0

Создание новой строки каждые 2 секунды (или 2 мс) не является проблемой. –

+0

Это мобильное приложение + это часть элемента списка в списке, который содержит много элементов. –

ответ

1

Как говорили другие, это не будет проблемой производительности. Строки неизменны, но они также быстро (ну, короткие из них, как это, так или иначе)

Тем не менее, если вы действительно, на самом деле не хотят сцепить Струны каждый раз, вы будете иметь чтобы иметь два TextView s, чтобы их вставить. Можно просто сохранить значение статического суффикса «км/ч», и вы можете обновить другое только с помощью значения.

Проблема с этим, конечно же, состоит в том, что у вас будет в два раза больше текстовых полей для ОС для измерения, выкладки и отображения. Вероятно, это не будет большой проблемой, но это еще большая работа, чем создание/удаление строки или двух.


Подводя итог, производительность хит вы получите за любой метод будет незначительным. Как в, не заметно. Если вы обнаружите, что у вас проблемы с производительностью, профайл, чтобы узнать, где они находятся. Это классический случай premature optimization.

0

Строки неизменны на Java. Если вы меняете строку каждые 2 секунды, вы делаете новую каждые 2 секунды, и нет никакого способа обойти это.

+0

Что было бы более оптимизированным подходом (чтобы не тратить ресурсы)? –

0

вы можете создать класс темпа, с единицей и some_value;

тогда у вас есть метод toSTring(), который возвращает вам строку, вам не нужно менять устройство, вам нужно изменить поле some_value.

+0

Таким образом, я все равно создам новую строку каждый раз. –

+0

Итак? Строки неизменны, поэтому вам нужно это сделать. Накладные расходы для создания новых объектов String в Java минимальны по сравнению со всеми остальными. Особенно, если вы создаете один раз в две секунды. – DeeV

+0

Что было бы лучшим подходом? использовать байтовый массив? – duffy356

Смежные вопросы