Java 如何制作可变长度的对象数组?
我正在制作一个将在ListView中显示的对象的ArrayList。当我使用Java 如何制作可变长度的对象数组?,java,android,arrays,Java,Android,Arrays,我正在制作一个将在ListView中显示的对象的ArrayList。当我使用Object[]ObjectList=new Object[length]时,它希望在创建时整个数组都有一个精确的长度。我曾尝试将长度值设置为int变量,但当变量更改时,它似乎不会更新长度。我怎样才能做到这一点?我对Java有点陌生,所以感谢所有帮助我的人 使用集合框架的列表界面。例如,List data=new ArrayList()。如果需要,可以使用数据将其转换为数组。toArray()方法数组具有固定大小。一旦创
Object[]ObjectList=new Object[length]
时,它希望在创建时整个数组都有一个精确的长度。我曾尝试将长度值设置为int变量,但当变量更改时,它似乎不会更新长度。我怎样才能做到这一点?我对Java有点陌生,所以感谢所有帮助我的人 使用集合框架的列表
界面。例如,List data=new ArrayList()
。如果需要,可以使用数据将其转换为数组。toArray()
方法数组具有固定大小。一旦创建了数组,就不能再更改其大小。您只能创建一个新数组并更改变量所持有的引用
换句话说,假设您从以下内容开始:
Object[] items = new Object[5];
后来你想:我需要更多的空间:
Object[] moreItems = new Object[15];
然后可以使用将第一个数组的内容复制到第二个数组中
记录在案:
- 列表/数组列表不是数组李>
使用上述方法为您实现“动态”增长的阵列体验ArrayList
- 我不会重复别人说得很好的话。
关于您的实际问题,
android.widget.ListView
设计为使用数组类型填充。现在,如果用于填充
列表视图
的数据有一个大小变量并且可能经常更改,您可以选择使用一个数组列表
包装在数组适配器
中
在onCreate()
方法中,您可以创建适配器并将其设置为ListView
:
List<String> list = new ArrayList<>();
...
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
this,
android.R.layout.listview,
arrayList);
listView.setAdapter(arrayAdapter);
List List=new ArrayList();
...
ArrayAdapter ArrayAdapter=新的ArrayAdapter(
这
android.R.layout.listview,
arrayList);
setAdapter(arrayAdapter);
现在,您不再有固定大小数组的问题,因为您使用的
ArrayList
没有此限制。Object[length]
不创建ArrayList,而是创建一个数组。使用新建ArrayList
创建对象的ArrayList。可能与[ArrayList from array]重复。虽然我有点不确定…在使用toArray()方法时,如何指定数组的对象类型?数组的类型将根据列表项的类型推断。例如,list将生成一个字符串[]
arrayI使用List List=new ArrayList拥有一个自定义对象(Obj)的ArrayList;当我拥有这个数组时,由Obj[]templast=List.toArray创建;它声称它需要Obj[],但找到了object[]。是的,ArrayList和ArrayAdapter就是答案。看看