哪两个代码在内存方面更好?

时间:2017-01-27 15:00:38

标签: android for-loop arraylist textview

我正在从Udacity的课程中学习android开发。虽然我正在完成第2课,但是我们必须创建多个Textview,从之前创建的ArrayList字符串中设置文本并添加那些Textviews到线性布局。

公共代码:

 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

3 个答案:

答案 0 :(得分:1)

没有区别。在这两种情况下,TextView个实例都无法进行垃圾回收,因此内存占用量相等。

  

因为即使在循环之后我也引用了每个TextView。

如果你真的不需要这些参考,那么它只是毫无意义。这与记忆无关。

答案 1 :(得分:1)

您的代码看起来不错。但我没有看到10个相同的TextViews。如果您将其用作列表并考虑优化代码,我会考虑使用listView或recyclerView。

但你的代码仍然没问题。

答案 2 :(得分:1)

明智的表现并不重要..就像你说的那样:

  

我觉得我的代码更好,因为即使在循环之后我也引用了每个TextView。

如果你需要,那就去做..