如何制作不同长度的对象数组?

时间:2017-08-15 19:25:19

标签: java android arrays

我正在制作一个将在ListView中显示的对象的ArrayList。当我使用Object[] ObjectList = new Object[length]时,它在创建时期望整个数组的精确长度。我已经尝试将长度值设为int变量,但是当变量更改时,它似乎不会更新长度。我怎么能做到这一点?我是Java的新手,所以感谢任何帮助过的人!

3 个答案:

答案 0 :(得分:3)

使用Collections框架的List接口。例如。 List<String> data = new ArrayList<>()。如果需要data.toArray()方法

,可以将其转换为数组

答案 1 :(得分:2)

数组具有固定大小。创建数组后,不能再更改大小。您只能创建一个新数组并更改变量所持有的引用!

换句话说 - 假设你从:

开始
Object[] items = new Object[5];

后来你想:我需要更多空间:

Object[] moreItems = new Object[15];

然后您可以使用System.arraycopy()将第一个数组的内容复制到第二个数组中。

记录:

  • List / ArrayList是不是数组。
  • ArrayList使用上面介绍的approch为您实现“动态”增长的阵列体验

答案 2 :(得分:2)

我不会重复别人说得很好的话。

关于您的实际问题,android.widget.ListView旨在填充数组类型 现在,如果用于填充ListView的数据具有大小变量并且可能经常更改,您可以选择使用ArrayList中包含的ArrayAdapter

onCreate()方法中,您可以创建适配器并将其设置为ListView

List<String> list = new ArrayList<>();
...
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
                 this, 
                 android.R.layout.listview,
                 arrayList);
listView.setAdapter(arrayAdapter); 

现在,当您使用没有此限制的ArrayList时,您不再遇到固定大小数组的问题。