Java 获取ArrayList的值(字符串)<;ArrayList<;字符串>&燃气轮机;(); 在爪哇
我知道这是一个简单的问题,但实际上Java 获取ArrayList的值(字符串)<;ArrayList<;字符串>&燃气轮机;(); 在爪哇,java,android,arraylist,Java,Android,Arraylist,我知道这是一个简单的问题,但实际上 ArrayList<ArrayList<String>> collection; ArrayList<String> listOfSomething; collection= new ArrayList<ArrayList<String>>(); listOfSomething = new ArrayList<String>(); listOfSomething.Add("f
ArrayList<ArrayList<String>> collection;
ArrayList<String> listOfSomething;
collection= new ArrayList<ArrayList<String>>();
listOfSomething = new ArrayList<String>();
listOfSomething.Add("first");
listOfSomething.Add("second");
collection.Add(listOfSomething);
listOfSomething.Clear();
listOfSomething.Add("first");
collection.Add(listOfSomething);
ArrayList集合;
某事物的数组列表;
collection=newarraylist();
listOfSomething=newArrayList();
添加(“第一”);
添加(“第二个”);
集合。添加(某物列表);
某些内容的列表。清除();
添加(“第一”);
集合。添加(某物列表);
我想从ArrayList的ArrayList中获取字符串,但我不知道怎么做。比如我去
ArrayList<String> myList = collection.get(0);
String s = myList.get(0);
ArrayList myList=collection.get(0);
字符串s=myList.get(0);
而且它有效!但是:
重大更新:
私有列表值;
私人上市价值z;
阵列列表;
ArrayList-listOfZ;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
Zdatasource=新的Zdatasource(本);
Zdatasource.open();
valuesZ=Zdatasource.getAllZ();
Sdatasource=新的Sdatasource(此);
Sdatasource.open();
valuesS=Sdatasource.getall();
列表组数据
=新的ArrayList();
列出儿童数据
=新的ArrayList();
listOfS=newarraylist();
listOfZ=newarraylist();
对于(si:valuesS){//S是类
对于(zj:valuesZ){//Z是类
如果(j.getNumerS().equals(i.getNumerS())){
add(j.getNumerZ());
}
其他的
{
//添加(“无”);
}
}
添加(listOfZ);
如果(!listOf.isEmpty())listOfZ.clear();
}
@凌驾
公共布尔onChildClick(ExpandableListView父视图、视图v、int-groupPosition、,
int子位置,长id){
尝试
{
ArrayList myList=listOfS.get(groupPosition);
字符串s=myList.get(childPosition);
PrintToast(“组”+Integer.toString(groupPosition)+”,子“+Integer.toString(childPosition)+”,”+s);
}
捕获(例外e)
{
Log.e(“FS”,e.toString());
}
返回true;
}
return me java.lang.IndexOutOfBoundsException:索引1无效,大小为0
当我点击应该存在的项目时。我没有显示生成ListView的代码,但我可以告诉你我的listOfS包含3个项目:
第一个是Null listOfZ,第二个listOfZ得到2个元素,第三个listOfZ得到1个元素。在列表中迭代列表的正确方法是:
//iterate on the general list
for(int i = 0 ; i < collection.size() ; i++) {
ArrayList<String> currentList = collection.get(i);
//now iterate on the current list
for (int j = 0; j < currentList.size(); j++) {
String s = currentList.get(1);
}
}
//迭代常规列表
对于(int i=0;i
当您在此处清除列表并添加一个元素(“first”)时,listOfSomething
的第一个引用也会更新,因为两者都引用同一个对象,因此当您访问第二个元素myList.get(1)
(不再存在)时,您会得到空值
请注意两个collection.Add(listOfSomething);
保存对同一arraylist对象的两个引用
您需要为两个元素创建两个不同的实例:
ArrayList<ArrayList<String>> collection = new ArrayList<ArrayList<String>>();
ArrayList<String> listOfSomething1 = new ArrayList<String>();
listOfSomething1.Add("first");
listOfSomething1.Add("second");
ArrayList<String> listOfSomething2 = new ArrayList<String>();
listOfSomething2.Add("first");
collection.Add(listOfSomething1);
collection.Add(listOfSomething2);
ArrayList集合=新建ArrayList();
ArrayList listOfSomething1=新的ArrayList();
某物清单1.添加(“第一”);
添加(“第二个”);
ArrayList listOfSomething2=新的ArrayList();
添加(“第一个”);
集合。添加(某物列表1);
集合。添加(某些内容的列表2);
因为清除列表后,第二个元素为空
使用:
请记住,索引0是第一个元素迭代列表的更简洁的方法是:
// initialise the collection
collection = new ArrayList<ArrayList<String>>();
// iterate
for (ArrayList<String> innerList : collection) {
for (String string : innerList) {
// do stuff with string
}
}
//初始化集合
collection=newarraylist();
//迭代
对于(ArrayList innerList:collection){
for(字符串:innerList){
//用绳子做东西
}
}
在调用myList或字符串s时得到null?如果得到null,则表示集合中第一个列表的第二个元素为null。我们如何帮助?我将更新我的问题。是的,这是真的,但我写下了示例代码,犯了愚蠢的错误。是的。正确。我使用listOfZ=new ArrayList();而不是listOfZ.clear();
ArrayList<ArrayList<String>> collection = new ArrayList<ArrayList<String>>();
ArrayList<String> listOfSomething1 = new ArrayList<String>();
listOfSomething1.Add("first");
listOfSomething1.Add("second");
ArrayList<String> listOfSomething2 = new ArrayList<String>();
listOfSomething2.Add("first");
collection.Add(listOfSomething1);
collection.Add(listOfSomething2);
String s = myList.get(0);
// initialise the collection
collection = new ArrayList<ArrayList<String>>();
// iterate
for (ArrayList<String> innerList : collection) {
for (String string : innerList) {
// do stuff with string
}
}