Я изучаю разработку 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
даже после цикла.
'Я бы рассмотреть вопрос об использовании ListView или recyclerView' Но каждая строка будет один TextView, так ... что оптимизация это будет? Кроме того, у вас будет группа ViewGroup в дополнение к отдельным строкам. –
ListViews оптимизированы для отображения списка элементов. Таким образом, с памятью строки используются повторно. –