2017-01-27 5 views
-3

Я изучаю разработку Android из курса Udacity.While, когда я проходил через Урок 2, возникла ситуация, когда нам приходилось создавать несколько текстовых образов, устанавливать текст из ранее созданных строк ArrayList и добавлять эти текстовые изображения в линейную компоновку ,Какой из двух кодов лучше по памяти?

Общий код:

ArrayList<String> words = new ArrayList<String>(); 
    words.add("one"); 
    words.add("two"); 
    words.add("three"); 
    words.add("four"); 
    words.add("five"); 
    words.add("six"); 
    words.add("seven"); 
    words.add("eight"); 
    words.add("nine"); 
    words.add("ten"); 
    LinearLayout rootView =(LinearLayout) findViewById(R.id.rootView); 

Теперь то, что они сделали:

for(int i=0;i<10;i++){ 
TextView wordView=new TextView(this); 
wordView.setText(words.get(i)); 
rootView.addView(wordView); 
} 

Что я сделал:

ArrayList<TextView> wordView = new ArrayList<TextView>(); 
    for(int i=0;i<10;i++) 
    { 
     wordView.add(new TextView(this)); 
     wordView.get(i).setText(words.get(i)); 
     rootView.addView(wordView.get(i)); 


    } 

Теперь мой вопрос погоды мой путь подойти к задаче имеет больше накладных расходов памяти, чем их способ?

Я чувствую, что мой код лучше, потому что у меня есть ссылка на каждый TextView даже после цикла.

ответ

1

Без разницы. В обоих случаях TextView экземпляров не может быть собрано в мусор, поэтому печать стопки памяти равна.

потому что у меня есть ссылка на каждый TextView даже после цикла.

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

1

Ваш код выглядит хорошо. Но я не вижу смысла иметь 10 одинаковых TextView. Я бы рассмотрел использование listView или recyclerView, если вы используете его в качестве списка и думаете об оптимизации вашего кода.

Но все равно ваш код в порядке.

+0

'Я бы рассмотреть вопрос об использовании ListView или recyclerView' Но каждая строка будет один TextView, так ... что оптимизация это будет? Кроме того, у вас будет группа ViewGroup в дополнение к отдельным строкам. –

+0

ListViews оптимизированы для отображения списка элементов. Таким образом, с памятью строки используются повторно. –

1

Это не имеет значения производительности мудрый .. Так же, как вы сказали:

Я чувствую мой код лучше, потому что у меня есть ссылки на каждый TextView даже после цикла.

Если вам нужно, что делать это ..

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

  • Нет связанных вопросов^_^